Wczytywanie pakietów SDK Firebase z zarezerwowanych adresów URL

Firebase Hosting rezerwuje w Twojej witrynie adresy URL zaczynające się od /__. Ten zarezerwowana przestrzeń nazw ułatwia korzystanie z innych usług Firebase razem z Firebase Hosting

Zarezerwowane adresy URL są dostępne zarówno podczas wdrażania do Firebase (firebase deploy), jak i w przypadku uruchamiania aplikacji na serwerze lokalnym (firebase serve).

Dodawanie skryptów do zarezerwowanych adresów URL

Ponieważ Firebase Hosting jest udostępniany przez HTTP/2 po wdrożeniu, możesz zwiększyć wydajność, wczytując pliki z tego samego źródła. Firebase Hosting serwowania pakietu SDK Firebase JavaScript w wersji 8 ze specjalnych adresów URL w następujący sposób:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Zdecydowanie zalecamy wczytywanie tylko tych bibliotek, których używasz w aplikacji. Aby na przykład uwzględnić tylko Authentication i Cloud Firestore, dodaj następujące skrypty na dole strony <body> , ale zanim skorzystasz z usług Firebase:

<body>
  <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
  <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
  <script src="/__/firebase/8.10.1/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.10.1/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
</body>

Automatyczna konfiguracja pakietu SDK

Automatyczna konfiguracja pakietu SDK ułatwia zarządzanie wieloma środowiskami (np. programistycznym, przejściowym i produkcyjnym) z jednego repozytorium kodu. Bazując na zarezerwowany Hosting URL, można wdrożyć ten sam kod w wielu Firebase w projektach AI.

Oprócz hostowania samych pakietów SDK zarezerwowana przestrzeń nazw zapewnia też całą konfigurację niezbędną do zainicjowania pakietu SDK dla Firebase w projekcie powiązanym z witryną Hosting. Ta konfiguracja Firebase Inicjowanie pakietu SDK jest dostarczane za pomocą skryptu, który można bezpośrednio uwzględnić:

<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>

Gdy wdrażasz tę aplikację w Firebase lub testujesz ją lokalnie, ten skrypt automatycznie konfiguruje pakiet SDK Firebase JavaScript na potrzeby aktywny projekt Firebase i inicjuje pakiet SDK.

Jeśli wolisz samodzielnie kontrolować inicjalizację, konfiguracja Firebase wartości są również dostępne w formacie JSON:

fetch('/__/firebase/init.json').then(async response => {
  firebase.initializeApp(await response.json());
});

Dostępne pakiety SDK Firebase JS (z zarezerwowanych adresów URL Hosting)

Usługa Firebase Dokumentacja biblioteki (zarezerwowany adres URL)
Podstawowe Firebase
(wymagane)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analytics
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
App Check
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Authentication
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions for Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Instalacje: Firebase
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Cloud Messaging
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Aby zapewnić optymalne działanie usługi Cloud Messaging, dodaj również pakiet SDK Firebase dla Analytics.

Cloud Storage
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Performance Monitoring
(wersja beta)
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Realtime Database
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Remote Config
(wersja beta)
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Aby zapewnić optymalne działanie usługi Remote Config, dodaj również pakiet SDK Firebase dla Analytics.

Firebase JavaScript SDK
(cały pakiet SDK)
<script src="/__/firebase/8.10.1/firebase.js"></script>

Pomoc dotycząca uwierzytelniania

Firebase Authentication używa zarezerwowanego parametru przestrzeń nazw, udostępniając specjalny kod JavaScript i kod HTML do ukończenia uwierzytelniania z użyciem protokołu OAuth. Dzięki temu każdy projekt Firebase może mieć unikalny identyfikator Subdomena Firebase, która zwiększa bezpieczeństwo Firebase Authentication.

Dzięki temu możesz też używać własnej domeny w authDomain opcji firebase.initializeApp(). Jeśli konfigurowanie domeny niestandardowej dla Firebase Hosting, możesz też określić tę domenę niestandardową (zamiast z subdomeny web.app lub firebaseapp.com) podczas inicjowania Firebase. Pakiety SDK. Więcej informacji o korzystaniu z domeny niestandardowej znajdziesz w artykule Sprawdzone metody korzystania z funkcji signInWithRedirect.

Zarezerwowane adresy URL i mechanizmy Service Worker

Jeśli tworzysz progresywną aplikację internetową (PWA), możesz utworzyć usługę instancja robocza z „zastępczą nawigacją” i domyślnie renderuje określony URL jeśli nie pasuje do listy elementów w pamięci podręcznej.

Jeśli używasz parametru sw-precache możesz dodać ustawienie zastępczej białej listy nawigacji, które wyklucza zarezerwowana przestrzeń nazw:

{
  navigateFallbackWhitelist: [/^(?!\/__).*/]
}

Ogólnie pamiętaj, że przestrzeń nazw podwójnego podkreślenia jest zarezerwowana dla korzystania z Firebase i że nie należy przechwytywać tych żądań w swojej usłudze. .