Firebase App Hosting, Firebase JavaScript SDK'sı ve Node.js için Firebase Admin SDK ile oluşturulan dinamik web uygulamaları için uygundur. Tam özellikli bir web uygulamasında Authentication, Cloud Firestore ve App Check gibi Firebase SDK'ları önemli roller oynar. Bu kılavuzda, Firebase SDK'ları optimize etmenize ve Firebase App Hosting üzerinde web uygulamanıza Firebase oluşturmaya 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 süresi ve çalışma zamanında bağımsız bir oluşturucu çağrısı aracılığıyla basitleştirilmiş uygulama ilk kullanıma hazırlama sağlar. Bu özellik, hem Firebase Admin SDK for Node.js (Firebase işlevlerinin büyük bir bölümünü kullanıma sunan 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 Admin SDK veya Firebase JavaScript SDK'sını 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();
Admin SDK için bu başlatma stratejisi, App Hosting'nin yanı sıra Cloud Run, App Engine ve Cloud Run işlevleri de dahil olmak üzere diğer Google sunucu ortamlarında çalışır.
JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
JavaScript SDK'sında bu başlatma stratejisi App Hosting içinde çalışır.
Otomatik olarak doldurulmuş 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
İsteğe bağlı olarak Realtime Database, Cloud Storage veya Cloud Functions gibi hizmetler için ö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
tarafından JavaScript SDK başlatma için yerleştirilen 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. postinstall komut dosyası, App Hosting Cloud Build derleme 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 Firebase JavaScript SDK'sını 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
npm installkomutunu çalıştırmadan önceFIREBASE_WEBAPP_CONFIGortam 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. Ara önbelleklerin (ör. .next/cache) de temizlenmesi gerekebilir.
SSR için FirebaseServerApp kullanma
Web uygulamanızı geliştirirken Firebase JS SDK'sı veya diğer Firebase istemci SDK'ları ile çalıştıysanız FirebaseApp arayüzünü ve uygulama örneklerini yapılandırmak için bu arayüzü nasıl kullanacağınızı biliyor 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 taraflı oluşturma arasındaki oturumları devam ettirmeye yönelik araçlar içerir.
FirebaseServerApp ile yapabilecekleriniz:
- Tam yönetim haklarına sahip olan Firebase Admin SDK'ın aksine, sunucu tarafı kodunu kullanıcı bağlamında yürütün.
- SSR ortamlarında App Check kullanımını etkinleştirin.
- İstemcide oluşturulan bir Firebase Auth oturumuna devam etme
FirebaseServerApp'yı bu amaçlarla kullanma hakkında 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ştirme
App Check kullanarak App Hosting üzerindeki dinamik web uygulamanızın güvenliğini artırabilirsiniz. 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.