Firebase App Hosting, Firebase JavaScript SDK'sı ve Node.js için Firebase Admin SDK ile oluşturulan dinamik web uygulamaları için idealdir. Tam özellikli bir web uygulamasında Firebase, Authentication, Cloud Firestore ve App Check gibi SDK'lar önemli roller oynar. Bu kılavuzda, Firebase SDK'ları optimize etmenize ve Firebase'yı Firebase App Hosting üzerindeki web uygulamanıza entegre etmeye başlamanıza yardımcı olacak bazı temel stratejiler açıklanmaktadır.
Firebase Admin SDK ve web SDK'larını otomatik olarak başlatma
Firebase App Hosting gibi Google ortamları, derleme ve çalışma zamanında bağımsız bir oluşturucu çağrısı aracılığıyla basitleştirilmiş uygulama başlatma sağlar. Bu özellik, hem Firebase Admin SDK for Node.js (Firebase işlevlerinin büyük bir bölümünü etkinleştiren ve web uygulamanızda çok faydalı olabilecek bir sunucu tarafı SDK'sı) hem de Firebase JavaScript SDK'sında bulunur.
initializeApp()
ile Firebase App Hosting, varsayılan değerleri geçersiz kılmak isterseniz belirli değerler üzerinde ayrıntılı kontrol seçeneğini korurken web uygulaması yapılandırmasını sizin için otomatik olarak doldurabilir.
Bağımsız değişken olmadan başlatma
Firebase JavaScript SDK'sını veya Firebase Admin SDK'ı varsayılan yapılandırma değerleriyle başlatmak için herhangi bir bağımsız değişken sağlamadan initializeApp()
kullanın:
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
Admin SDK başlatma için kullanılan bu strateji, App Hosting'da ve Cloud Run, App Engine ve Cloud Functions gibi diğer Google sunucu ortamlarında da çalışır. JavaScript SDK'sında bu strateji App Hosting üzerinde çalışır.
Otomatik doldurulan değerleri geçersiz kılma
Otomatik olarak eklenen varsayılan yapılandırmayı geçersiz kılabilirsiniz. Bu seçeneklerin Admin SDK ile JavaScript SDK'sı arasında farklılık gösterdiğini unutmayın.
Admin SDK geçersiz kılma
Realtime Database, Cloud Storage veya Cloud Functions gibi hizmetler için isteğe bağlı olarak özel başlatma seçenekleri belirtmek üzere FIREBASE_CONFIG
ortam değişkenini kullanın. FIREBASE_CONFIG
değişkeninin içeriği {
karakteriyle başlıyorsa JSON nesnesi olarak ayrıştırılır. Aksi takdirde SDK, dizenin seçenekleri içeren bir JSON dosyasının yolu olduğunu varsayar.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
JavaScript SDK'sını geçersiz kılma
App Hosting'nin JavaScript SDK'sını başlatmak için eklediği varsayılan FIREBASE_WEBAPP_CONFIG
değerlerini geçersiz kılmak istiyorsanız apphosting.yaml
içinde değer belirtebilirsiniz:
# apphosting.yaml
env:
- variable: FIREBASE_WEBAPP_CONFIG
value: '{"apiKey":"myApiKey","appId":"app:123","authDomain":"project-id.firebaseapp.com","databaseURL":"https://project-id-default-rtdb.firebaseio.com","messagingSenderId":"0123456789","projectId":"project-id","storageBucket":"project-id.firebasestorage.app"}'
Diğer ortamlarda otomatik başlatmayı kullanma
Otomatik başlatma, Firebase JavaScript SDK'sını yüklediğinizde npm postinstall
komut dosyası ile ayarlanır. Yükleme sonrası komut dosyası, FIREBASE_WEBAPP_CONFIG
ortam değişkenini arar. Bu değişken, App Hosting Cloud Build ortamında otomatik olarak ayarlanır.
JS SDK'yı Cloud Build dışında yüklüyorsanız Firebase JavaScript SDK'yı yüklerken bu ortam değişkenini kendiniz ayarlamanız gerekir.
Ortamı kurulum sırasında manuel olarak ayarlamak için:
Firebase konsolundan Firebase web uygulaması yapılandırma nesnenizi kopyalayın.
Bir terminalden
FIREBASE_WEBAPP_CONFIG
ortam değişkenini ayarlayın. Ardındannpm install
komutunu çalıştırın.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
Firebase projenizi veya web uygulamanızı her değiştirdiğinizde bu komutu yeniden çalıştırın.
SSR için FirebaseServerApp
kullanma
Web uygulamanızın geliştirilmesinde Firebase JS SDK'sı veya diğer Firebase istemci SDK'ları ile çalıştıysanız FirebaseApp
arayüzü ve uygulama örneklerini yapılandırmak için bu arayüzün nasıl kullanılacağı hakkında bilgi sahibi olabilirsiniz. Firebase, sunucu tarafında benzer işlemlerin kolaylaştırılması için FirebaseServerApp
sağlar.
FirebaseServerApp
, sunucu tarafında oluşturma (SSR) ortamlarında kullanılmak üzere FirebaseApp
öğesinin bir varyantıdır. İstemci taraflı oluşturma (CSR) ve sunucu tarafı oluşturma arasındaki ayrımı kapsayan Firebase oturumlarına devam etme araçları içerir.
FirebaseServerApp
ile yapabilecekleriniz:
- Firebase Admin SDK'nin aksine, user bağlamında sunucu tarafı kodu yürütür. Firebase Admin SDK, tam yönetim haklarına sahiptir.
- SSR ortamlarında App Check kullanımını etkinleştirin.
- İstemcide oluşturulan bir Firebase Auth oturumuna devam etme
FirebaseServerApp
'nın bu amaçlarla kullanımıyla ilgili ayrıntılı bilgi için SSR ile dinamik web uygulamalarında Firebase'i kullanma başlıklı makaleyi inceleyin.
Web uygulamanızda App Check özelliğini etkinleştirin
App Check kullanarak App Hosting üzerindeki dinamik web uygulamanızın güvenliğini güçlendirebilirsiniz. Use Firebase in dynamic web apps with SSR başlıklı makalede açıklanan belirli sunucu tarafı stratejilerinden bazılarını uygulayarak App Hosting arka uçlarınızı kötüye kullanıma karşı koruyabilirsiniz.