Firebase SDK'larını web uygulamanızla entegre etme

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:

  1. Firebase konsolundan Firebase web uygulaması yapılandırma nesnenizi kopyalayın.

  2. Bir terminalden FIREBASE_WEBAPP_CONFIG ortam değişkenini ayarlayın. Ardından npm 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.