Firebase App Hosting doskonale pasuje do dynamicznych aplikacji internetowych utworzonych za pomocą pakietu SDK Firebase JavaScript i Firebase Admin SDK dla Node.js. W pełnej wersji aplikacji internetowej ważne role odgrywają pakiety SDK Firebase, takie jak Authentication, Cloud Firestore i App Check. W tym przewodniku znajdziesz kilka kluczowych strategii, które pomogą Ci zoptymalizować pakiety SDK i zacząć tworzyć Firebase w aplikacji internetowej na Firebase App Hosting.Firebase
Automatyczne inicjowanie pakietów SDK Firebase Admin SDK i pakietów SDK internetowych
Środowiska Google, takie jak Firebase App Hosting, upraszczają inicjowanie aplikacji dzięki wywołaniu konstruktora bez argumentów w czasie kompilacji i wykonywania. Jest to funkcja zarówno Firebase Admin SDK dla Node.js – pakietu SDK po stronie serwera, który odblokowuje duży obszar funkcji Firebase i może być bardzo przydatny w aplikacji internetowej – jak i Firebase JavaScript SDK.
Dzięki initializeApp()
możesz zezwolić Firebase App Hosting na automatyczne wypełnianie konfiguracji aplikacji internetowej, zachowując jednocześnie możliwość precyzyjnego kontrolowania określonych wartości, jeśli chcesz zastąpić wartości domyślne.
Inicjowanie bez argumentów
Aby zainicjować pakiet SDK Firebase JavaScript lub Firebase Admin SDK z domyślnymi wartościami konfiguracji, użyj funkcji initializeApp()
bez podawania argumentów:
Admin SDK
import { initializeApp } from 'firebase-admin/app';
const app = initializeApp();
pakiet JavaScript SDK
import { initializeApp } from 'firebase/app';
const app = initializeApp();
Ta strategia inicjowania Admin SDK działa zarówno w App Hosting, jak i w innych środowiskach serwerowych Google, w tym Cloud Run, App Engine i Cloud Functions. W przypadku pakietu SDK JavaScript ta strategia działa w przypadku App Hosting.
Zastępowanie wartości wypełnianych automatycznie
Możesz zastąpić domyślną konfigurację, która jest wstrzykiwana automatycznie. Pamiętaj, że te opcje różnią się w zależności od pakietu SDK Admin SDK i pakietu SDK JavaScript.
Admin SDK zastąpienie
Aby opcjonalnie określić niestandardowe opcje inicjowania usług takich jak Realtime Database, Cloud Storage czy Cloud Functions, użyj zmiennej środowiskowej FIREBASE_CONFIG
. Jeśli zawartość zmiennej FIREBASE_CONFIG
zaczyna się od znaku {
, zostanie ona przeanalizowana jako obiekt JSON. W przeciwnym razie pakiet SDK zakłada, że ciąg znaków jest ścieżką do pliku JSON zawierającego opcje.
# apphosting.yaml
env:
- variable: FIREBASE_CONFIG
value: '{"credential: applicationDefault()","databaseURL":"https://project-id-default-rtdb.firebaseio.com"}'
Zastąpienie pakietu JavaScript SDK
Aby zastąpić domyślne wartości FIREBASE_WEBAPP_CONFIG
, które App Hosting
wstawia na potrzeby inicjowania pakietu SDK JavaScript, możesz określić wartości w apphosting.yaml
:
# 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"}'
Korzystanie z automatycznej inicjalizacji w innych środowiskach
Automatyczna inicjalizacja jest konfigurowana za pomocą skryptu npm postinstall podczas instalowania pakietu Firebase JavaScript SDK. Skrypt postinstalacyjny wyszukuje zmienną środowiskową FIREBASE_WEBAPP_CONFIG
, która jest ustawiana automatycznie w środowisku App Hosting Cloud Build.
Jeśli instalujesz pakiet JS SDK poza Cloud Build, musisz samodzielnie ustawić tę zmienną środowiskową podczas instalowania pakietu Firebase JavaScript SDK.
Aby skonfigurować środowisko ręcznie podczas instalacji:
Skopiuj obiekt konfiguracji aplikacji internetowej Firebase z konsoli Firebase.
W terminalu ustaw zmienną środowiskową
FIREBASE_WEBAPP_CONFIG
przed uruchomieniem polecenianpm install
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
Za każdym razem, gdy zmienisz projekt Firebase lub aplikację internetową, ponownie uruchom to polecenie.
Używanie FirebaseServerApp
w przypadku SSR
Jeśli podczas tworzenia aplikacji internetowej korzystasz z pakietu Firebase JS SDK lub innych pakietów Firebase SDK po stronie klienta, prawdopodobnie znasz już FirebaseApp
interfejsFirebaseApp
i wiesz, jak go używać do konfigurowania instancji aplikacji. Aby ułatwić podobne operacje po stronie serwera, Firebase udostępnia FirebaseServerApp
.
FirebaseServerApp
to wariant FirebaseApp
do użycia w środowiskach renderowania po stronie serwera (SSR). Zawiera narzędzia do kontynuowania sesji Firebase, które obejmują renderowanie po stronie klienta (CSR) i renderowanie po stronie serwera.
Korzystaj z FirebaseServerApp
, aby:
- wykonywać kod po stronie serwera w kontekście użytkownika, w przeciwieństwie do Firebase Admin SDK, który ma pełne uprawnienia administracyjne.
- Włącz korzystanie z funkcji App Check w środowiskach SSR.
- Kontynuowanie sesji uwierzytelniania Firebase utworzonej na kliencie.
Szczegółowe informacje o używaniu FirebaseServerApp
do tych celów znajdziesz w artykule Korzystanie z Firebase w dynamicznych aplikacjach internetowych z SSR.
Włącz App Check w aplikacji internetowej
Możesz użyć App Check, aby zwiększyć bezpieczeństwo dynamicznej aplikacji internetowej na platformie App Hosting. Wdrażając niektóre strategie po stronie serwera opisane w artykule Korzystanie z Firebase w dynamicznych aplikacjach internetowych z renderowaniem po stronie serwera, możesz chronić swoje App Hostingbackendy przed nadużyciami.