Catch up on highlights from Firebase at Google I/O 2023. Learn more

Załaduj pakiety SDK Firebase z zarezerwowanych adresów URL

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

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

Dodaj skrypty dla zarezerwowanych adresów URL

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

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Zdecydowanie zalecamy ładowanie tylko tych bibliotek , których używasz w swojej aplikacji. Na przykład, aby uwzględnić tylko uwierzytelnianie i Cloud Firestore, dodaj następujące skrypty na dole tagu <body> , ale przed użyciem jakichkolwiek 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 SDK

Automatyczna konfiguracja zestawu SDK ułatwia zarządzanie wieloma środowiskami (takimi jak programowanie, przemieszczanie i produkcja) z poziomu jednej bazy kodu. Polegając na zarezerwowanym adresie URL hostingu, możesz wdrożyć ten sam kod w wielu projektach Firebase.

Oprócz hostowania samych zestawów SDK zarezerwowana przestrzeń nazw zapewnia również całą konfigurację niezbędną do zainicjowania zestawu SDK dla projektu Firebase powiązanego z witryną hostingu. Ta konfiguracja Firebase i inicjalizacja pakietu SDK jest zapewniana przez skrypt, który możesz dołączyć bezpośrednio:

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

Podczas wdrażania w Firebase lub lokalnego testowania aplikacji ten skrypt automatycznie konfiguruje zestaw Firebase JavaScript SDK dla aktywnego projektu Firebase i inicjuje zestaw SDK.

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

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

Dostępne pakiety SDK Firebase JS (z zastrzeżonych adresów URL hostingu)

Produkt Firebase Odniesienie do biblioteki (zarezerwowany adres URL)
Rdzeń Firebase
(wymagany)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analityka
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
Sprawdź aplikację
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Uwierzytelnianie
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions dla pakietu SDK klienta Firebase
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Instalacje Firebase
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Wiadomości w chmurze
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Aby optymalnie korzystać z usługi Cloud Messaging, dodaj także pakiet Firebase SDK for Analytics.

Magazyn w chmurze
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Monitoring wydajności
(wersja beta )
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Baza danych czasu rzeczywistego
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Zdalna konfiguracja
(wersja beta )
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Aby uzyskać optymalne wrażenia podczas korzystania ze Zdalnej konfiguracji, dodaj też pakiet Firebase SDK for Analytics.

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

Pomocnicy uwierzytelniający

Uwierzytelnianie Firebase wykorzystuje zarezerwowaną przestrzeń nazw, aby zapewnić specjalny kod JavaScript i HTML w celu zakończenia uwierzytelniania z dostawcami za pośrednictwem protokołu OAuth. Dzięki temu każdy projekt Firebase może mieć unikalną subdomenę Firebase, zwiększając bezpieczeństwo uwierzytelniania Firebase.

Ponadto umożliwia to użycie własnej domeny niestandardowej dla opcji authDomain metody firebase.initializeApp() . Jeśli skonfigurujesz domenę niestandardową dla Hostingu Firebase, możesz też określić tę domenę niestandardową (zamiast subdomeny web.app lub firebaseapp.com ) podczas inicjowania pakietów SDK Firebase.

Zarezerwowane adresy URL i pracownicy usług

Jeśli budujesz Progressive Web App (PWA), możesz utworzyć proces roboczy usługi, który ma „rezerwę nawigacji” i domyślnie renderuje określony adres URL, jeśli nie pasuje on do listy wstępnie zapisanych elementów.

Jeśli używasz biblioteki sw-precache , możesz dodać ustawienie białej listy awaryjnej nawigacji, które wyklucza zarezerwowaną przestrzeń nazw:

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

Ogólnie rzecz biorąc, pamiętaj tylko, że przestrzeń nazw z podwójnym podkreśleniem jest zarezerwowana do użytku w Firebase i że nie powinieneś przechwytywać tych żądań w swoim pracowniku usługi.