Firebase App Hosting jest idealnym rozwiązaniem dla dynamicznych aplikacji internetowych utworzonych za pomocą pakietu SDK Firebase JavaScript i Firebase Admin SDK dla Node.js. W pełnej aplikacji internetowej pakiety SDK Firebase, takie jak Authentication, Cloud Firestore i App Check, odgrywają ważną rolę. Z tego przewodnika dowiesz się, jak zoptymalizować pakiety SDK Firebase i zacząć tworzyć Firebase w aplikacji internetowej na platformie Firebase App Hosting.
automatycznie inicjować Firebase Admin SDK i pakiety SDK internetowe;
Środowiska Google, takie jak Firebase App Hosting, zapewniają uproszczoną inicjalizację aplikacji przez wywołanie konstruktora bez argumentów w czasie kompilacji i wykonania. Ta funkcja jest dostępna zarówno w pakiecie Firebase Admin SDK na potrzeby Node.js – pakiecie SDK po stronie serwera, który udostępnia wiele funkcji Firebase i może być bardzo przydatny w aplikacji internetowej – jak i w pakiecie Firebase JavaScript SDK.
Dzięki initializeApp()
możesz pozwolić Firebase App Hosting na automatyczne wypełnianie konfiguracji aplikacji internetowej, zachowując jednocześnie możliwość szczegółowego kontrolowania określonych wartości, jeśli chcesz zastąpić wartości domyślne.
Inicjalizacja bez argumentów
Aby zainicjować pakiet SDK Firebase JavaScript lub Firebase Admin SDK za pomocą domyślnych wartości 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 w App Hosting, a także w innych środowiskach serwerów Google, takich jak Cloud Run, App Engine i Cloud Functions. W przypadku pakietu SDK JavaScript ta strategia działa w wersji App Hosting.
Zastępowanie wartości wypełnianych automatycznie
Możesz zastąpić domyślną konfigurację, która jest automatycznie wstrzykiwana. Pamiętaj, że te opcje różnią się w pakiecie SDK Admin SDK i pakiecie SDK JavaScript.
Admin SDK zastąpienie
Aby opcjonalnie określić niestandardowe opcje inicjowania dla 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 przeanalizowana jako obiekt JSON. W przeciwnym razie SDK zakłada, że ciąg znaków to ścieżka 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 SDK JavaScript
Aby zastąpić domyślne wartości FIREBASE_WEBAPP_CONFIG
, które App Hosting wstrzykuje do początkowej konfiguracji pakietu SDK JavaScript, możesz podać wartości w pliku 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
Automatyczne inicjowanie jest konfigurowane za pomocą skryptu npm po instalacji, gdy instalujesz pakiet Firebase JavaScript SDK. Skrypt po instalacji szuka zmiennej środowiskowej FIREBASE_WEBAPP_CONFIG
, która jest ustawiana automatycznie w środowisku Cloud Build App Hosting.
Jeśli instalujesz pakiet JS SDK poza Cloud Build, na przykład lokalnie do użycia z pakietem Firebase Emulator Suite, musisz samodzielnie ustawić tę zmienną środowiskową podczas instalowania pakietu Firebase JavaScript SDK.
Aby ręcznie skonfigurować środowisko podczas instalacji:
Skopiuj obiekt konfiguracji aplikacji internetowej Firebase z konsoli Firebase.
Przed uruchomieniem polecenia
npm install
w terminalu ustaw zmienną środowiskowąFIREBASE_WEBAPP_CONFIG
.
FIREBASE_WEBAPP_CONFIG="{...}" npm install firebase
Za każdym razem, gdy zmienisz projekt Firebase lub aplikację internetową, ponownie uruchom to polecenie.
Używanie funkcji FirebaseServerApp
do obsługi SSR
Jeśli podczas tworzenia aplikacji internetowej korzystasz z pakietu SDK Firebase JS lub innego pakietu SDK klienta Firebase, prawdopodobnie znasz interfejs FirebaseApp
i wiesz, jak go używać do konfigurowania instancji aplikacji. Aby ułatwić podobne operacje po stronie serwera, Firebase udostępnia funkcję FirebaseServerApp
.
FirebaseServerApp
to wariant FirebaseApp
przeznaczony do renderowania po stronie serwera (SSR). Zawiera ona narzędzia do kontynuowania sesji Firebase, które obejmują renderowanie po stronie klienta (CSR) i renderowanie po stronie serwera.
Korzystaj z FirebaseServerApp
, aby:
- Wykonywanie kodu po stronie serwera w kontekście użytkownika, w przeciwieństwie do konta Firebase Admin SDK, które ma pełne uprawnienia administracyjne.
- Włącz korzystanie z funkcji App Check w środowiskach SSR.
- kontynuować sesję uwierzytelniania Firebase utworzoną w kliencie;
Szczegółowe informacje o używaniu FirebaseServerApp
do tych celów znajdziesz w artykule Używanie Firebase w dynamicznych aplikacjach internetowych z użyciem SSR.
Włącz App Check w aplikacji internetowej
Możesz użyć App Check, aby wzmocnić bezpieczeństwo swojej dynamicznej aplikacji internetowej w App Hosting. Stosując niektóre z strategii na serwerze opisanych w artykule Korzystanie z Firebase w dynamicznych aplikacjach internetowych z wykorzystaniem SSR, możesz chronić swoje App Hostingbackendy przed nadużyciami.