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 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:

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

  2. Bir terminalde, npm install komutunu çalıştırmadan önce FIREBASE_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 FirebaseApparabirimi 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.