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 Authentication, Cloud Firestore ve App Check gibi Firebase SDK'larının önemli rolleri vardır. Bu kılavuzda, Firebase SDK'larını optimize etmenize ve Firebase App Hosting'te web uygulamanıza Firebase eklemeye 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 değişken içermeyen bir kurucu çağrısı aracılığıyla basitleştirilmiş uygulama başlatma sağlar. Bu özellik hem Node.js için Firebase Admin SDK (Firebase işlevselliğinin geniş bir alanını açan ve web uygulamanızda çok yararlı olabilecek sunucu tarafı bir SDK) hem de Firebase JavaScript SDK'sında mevcuttur.
initializeApp()
ile, varsayılan değerleri geçersiz kılmak isterseniz belirli değerler üzerinde ayrıntılı kontrol seçeneğini korurken Firebase App Hosting'un web uygulaması yapılandırmasını sizin için otomatik olarak doldurmasına izin verebilirsiniz.
Bağımsız değişken olmadan başlatma
Firebase JavaScript SDK'sını veya Firebase Admin SDK'i 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 ilklendirme stratejisi, Cloud Run, App Engine ve Cloud Functions dahil olmak üzere diğer Google sunucu ortamlarının yanı sıra App Hosting'te de çalışır. JavaScript SDK'sı için bu strateji App Hosting üzerinde çalışır.
Otomatik olarak doldurulan değerleri geçersiz kılma
Otomatik olarak yerleştirilen varsayılan yapılandırmayı geçersiz kılabilirsiniz. Bu seçeneklerin Admin SDK ve 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 istiyorsanız FIREBASE_CONFIG
ortam değişkenini kullanın. FIREBASE_CONFIG
değişkeninin içeriği {
karakteriyle başlarsa 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
JavaScript SDK'sının başlatılması için App Hosting tarafından eklenen varsayılan FIREBASE_WEBAPP_CONFIG
değerlerini geçersiz kılmak üzere apphosting.yaml
içinde değerler 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"}'
Otomatik başlatmayı diğer ortamlarda kullanma
Otomatik başlatma, Firebase JavaScript SDK'sını yüklediğinizde bir npm yükleme sonrası komut dosyasıyla ayarlanır. Yükleme sonrası komut dosyası, App Hosting Cloud Build ortamında otomatik olarak ayarlanan FIREBASE_WEBAPP_CONFIG
ortam değişkenini arar.
JS SDK'sını Cloud Build dışında yüklüyorsanız (ör. Firebase Emulator Suite ile kullanmak için yerel olarak) Firebase JavaScript SDK'sını yüklerken bu ortam değişkenini kendiniz ayarlamanız gerekir.
Kurulum sırasında ortamı manuel olarak ayarlamak için:
Firebase web uygulaması yapılandırma nesnenizi Firebase konsolundan kopyalayın.
Bir terminalde,
npm install
komutunu çalıştırmadan önceFIREBASE_WEBAPP_CONFIG
ortam değişkenini ayarlayı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ıyla çalıştıysanız muhtemelen FirebaseApp
arabirimi ve uygulama örneklerini yapılandırmak için bu arayüzü nasıl kullanacağınızı biliyorsunuzdur. Firebase, sunucu tarafında benzer işlemleri kolaylaştırmak için FirebaseServerApp
sağlar.
FirebaseServerApp
, sunucu tarafı oluşturma (SSR) ortamlarında kullanılmak üzere FirebaseApp
'un bir varyantıdır. İstemci tarafı oluşturma (CSR) / sunucu tarafı oluşturma ayrımına yayılan Firebase oturumlarına devam etme araçlarını içerir.
FirebaseServerApp
ile yapabilecekleriniz:
- Tam yönetim haklarına sahip Firebase Admin SDK'in aksine, sunucu tarafı kodunu kullanıcı bağlamında yürütür.
- SSR ortamlarında App Check kullanımını etkinleştirin.
- İstemcide oluşturulan bir Firebase Auth oturumuna devam edin.
FirebaseServerApp
değerini bu amaçlarla kullanmayla ilgili tüm ayrıntılar için SSR ile dinamik web uygulamalarında Firebase'i kullanma başlıklı makaleyi inceleyin.
Web uygulamanızda App Check'ü etkinleştirme
App Hosting'da dinamik web uygulamanızın güvenliğini güçlendirmek için App Check'ü kullanabilirsiniz. SSR ile dinamik web uygulamalarında Firebase'i kullanma başlıklı makalede açıklanan belirli sunucu tarafı stratejilerinden bazılarını uygulayarak App Hostingarka uçlarınızı kötüye kullanıma karşı koruyabilirsiniz.