Obsługiwane środowiska
Pakiet SDK Firebase JavaScript jest oficjalnie obsługiwany w tych środowiskach:
Przeglądarki
Usługa Firebase | Edge | Firefox | Chrome | Safari na iOS | Safari |
---|---|---|---|---|---|
App Check | |||||
Analytics | |||||
Authentication | |||||
Cloud Firestore | (z wyjątkiem trwałości ) |
(z wyjątkiem trwałości w przypadku iOS < 10) |
|||
Cloud Functions | |||||
Firebase instalacji | |||||
Cloud Messaging | (Edge w wersji 17 lub nowszej, z wyjątkiem wersji mobilnej) |
||||
Cloud Storage | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config | |||||
Vertex AI in Firebase |
Inne środowiska
Usługa Firebase | React Native | Node.js (18+). | Rozszerzenia do Chrome |
Cordova |
---|---|---|---|---|
App Check | (korzystanie z niestandardowego dostawcy do przeprowadzania natywnego uwierzytelniania urządzenia) |
(za pomocą niestandardowego dostawcy) |
||
Analytics | ||||
Authentication | (patrz Uwaga) |
(patrz Uwaga) |
(patrz Uwaga) |
(patrz Uwaga) |
Cloud Firestore | (z wyjątkiem trwałości ) |
(z wyjątkiem trwałości ) |
||
Cloud Functions | ||||
Data Connect | ||||
Firebase instalacji | ||||
Cloud Messaging | ||||
Cloud Storage | (z wyjątkiem przesyłanych plików ) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config | ||||
Vertex AI in Firebase |
wypełniacze;
Pakiet SDK Firebase JavaScript jest oparty na najnowszych standardach platformy internetowej. Niektóre starsze przeglądarki i środowiska JavaScript nie obsługują wszystkich funkcji wymaganych przez Firebase. Jeśli musisz obsługiwać te przeglądarki lub środowiska, musisz odpowiednio wczytać polyfille.
W sekcjach poniżej znajdziesz większość polyfilli, których możesz potrzebować.
Wymagane rozwiązania zastępcze
Środowiska | Wypełniacze |
---|---|
Safari 7, 8 i 9 | ES Stabilna |
Węzeł < 10 | ES Stabilna |
Opcjonalne rozwiązania zastępcze
Środowiska | Wypełniacze | Usługi Firebase |
---|---|---|
|
pobieranie |
|
|
pobieranie |
|
|
base-64 |
|
Sugerowane rozwiązania zastępcze
Wypełniacze | Licencja |
---|---|
ES Stabilna | MIT |
fetch – „cross-fetch” – najlepsze rozwiązanie w przypadku starszych przeglądarek. | MIT |
fetch – „undici” – najlepiej nadaje się do Node.js | MIT |
base-64 | MIT |
Wymagane skonfigurowanie rozszerzenia dla React Native i Expo
Jeśli przesyłasz ciąg znaków zakodowany w formacie Base64 w przypadku React Native i Expo, wykonaj te czynności:
Zainstaluj pakiet base-64 z npm:
npm install base-64
Zaimportuj decode
z base-64
i dołącz go do zakresu globalnego jako atob
, aby Cloud Storage mógł z niego korzystać.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Dodawanie polyfilli do aplikacji
Opcja 1: (zalecana) użyj narzędzia do tworzenia pakietów zintegrowanego z Babel
Jeśli używasz pakietu, zintegruj się z Babelem i @babel/preset-env, aby uzyskać polyfilly.
Aby dowiedzieć się, jak zintegrować Babel z bundlerem, skorzystaj z interaktywnego przewodnika po konfiguracji.
Dzięki Babel nie musisz się martwić, które polyfille uwzględnić. Zamiast tego określ minimalne środowiska przeglądarek, które musisz obsługiwać. Babel doda za Ciebie niezbędne polyfille. Babel zapewnia, że wymagania dotyczące obsługi przeglądarki są zawsze spełnione, nawet jeśli Firebase lub Twój kod zacznie używać nowych funkcji ES.
@babel/preset-env zawiera szczegółowe informacje o dostępnych opcjach konfiguracji służących do określania celów środowiskowych (opcja targets
) i dodawania polyfilli (opcja useBuiltIns
).
Opcja 2: (nie zalecane) Dodaj polyfills ręcznie.
Możesz ręcznie dodawać polyfilly za pomocą ulubionych bibliotek polyfill (na przykład core-js
).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
udostępnia też uniwersalny plik polyfill, który możesz bezpośrednio umieścić na stronie HTML.
Ta opcja może być wygodnym sposobem zarządzania polyfillami, jeśli nie używasz Babel. Nie zalecamy jednak korzystania z tego rozwiązania typu „wszystko w jednym” w przypadku aplikacji produkcyjnych, ponieważ prawdopodobnie będzie ono zawierać niepotrzebne rozwiązania polyfill, które zwiększają rozmiar strony, a co za tym idzie – czas jej wczytywania.