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 Chrome |
Cordova |
---|---|---|---|---|
App Check | (korzystając z niestandardowego dostawcy do przeprowadzania atestaowania natywnych urządzeń) |
(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 | ||||
Firebase instalacji | ||||
Cloud Messaging | ||||
Cloud Storage | (z wyjątkiem przesłanych) |
|||
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ć elementy polyfill.
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 | Stabilny ES |
Opcjonalne rozwiązania zastępcze
Środowiska | Wypełniacze | Usługi Firebase |
---|---|---|
|
pobieranie |
|
|
pobieranie |
|
|
base-64 |
|
Sugerowane elementy polyfill
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 korzystasz z narzędzia do tworzenia pakietów, zintegruj je z Babel i @babel/preset-env, aby uzyskać kod polyfill.
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 środowisko przeglądarki, które musisz obsługiwać. Babel automatycznie doda do projektu niezbędne rozwiązania polyfill. 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. (Niezalecane) Dodaj kod polyfill ręcznie
Elementy polyfill możesz dodawać ręcznie, używając ulubionych bibliotek polyfill (np. 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.