Obsługiwane środowiska
Pakiet Firebase JavaScript SDK jest oficjalnie obsługiwany w tych środowiskach.
Przeglądarki
| Usługa Firebase | Edge | Firefox | Chrome | Safari na iOS | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (z wyjątkiem trwałości) |
(z wyjątkiem trwałości w iOS w wersji < 10) |
|||
| Cloud Functions | |||||
| Firebase instalacje | |||||
| Cloud Messaging | (Edge w wersji 17 lub nowszej, z wyjątkiem wersji mobilnej) |
||||
| Cloud Storage | |||||
| SQL Connect | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config |
1 Firebase AI Logic nazywała się wcześniej "Vertex AI in Firebase".
Inne środowiska
| Usługa Firebase | React Native | Node.js (w wersji 18 lub nowszej) | Rozszerzenia Chrome |
Cordova |
|---|---|---|---|---|
| Firebase AI Logic 1 | ||||
| App Check | (przy użyciu dostawcy niestandardowego do przeprowadzania atestacji urządzenia natywnego) |
(przy użyciu dostawcy niestandardowego) |
||
| 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 | ||||
| SQL Connect | ||||
| Firebase instalacje | ||||
| Cloud Messaging | ||||
| Cloud Storage | (z wyjątkiem przesyłania) |
|||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config |
1 Firebase AI Logic nazywała się wcześniej "Vertex AI in Firebase".
Polyfille
Pakiet Firebase JavaScript SDK 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 informacje o większości polyfilli, których możesz potrzebować.
Wymagane polyfille
| Środowiska | Polyfille |
|---|---|
| Safari 7, 8 i 9 | ES Stable |
| Node w wersji < 10 | ES Stable |
Opcjonalne polyfille
| Środowiska | Polyfille | Usługi Firebase |
|---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
Sugerowane polyfille
| Polyfille | Licencja |
|---|---|
| ES Stable | MIT |
| fetch \- `cross-fetch` – najlepsze rozwiązanie w przypadku starszych przeglądarek | MIT |
| fetch \- `undici` – najlepsze rozwiązanie w przypadku Node.js | MIT |
| base-64 | MIT |
Wymagana konfiguracja polyfilli w React Native i Expo
Jeśli w React Native i Expo przesyłasz ciąg zakodowany w base64, musisz wykonać te czynności:
Zainstaluj 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ł uzyskać do niego dostęp.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Dodawanie polyfilli w aplikacji
Opcja 1: (zalecana) Użyj narzędzia do łączenia w pakiety zintegrowanego z Babel
Jeśli używasz narzędzia do łączenia w pakiety, zintegruj je z Babel i @babel/preset-env, aby uzyskać polyfille.
Aby dowiedzieć się jak zintegrować Babel z narzędziem do łączenia w pakiety, skorzystaj z interaktywnego przewodnika konfiguracji Babel.
W przypadku Babel nie musisz się martwić o to, które polyfille należy uwzględnić. Zamiast tego określasz minimalne środowiska przeglądarki, które musisz obsługiwać. Babel dodaje wtedy niezbędne polyfille. Babel dba o to, aby Twoje wymagania dotyczące obsługi przeglądarek były zawsze spełnione, nawet jeśli Firebase lub Twój kod zacznie korzystać z nowych funkcji ES.
Więcej informacji o dostępnych opcjach konfiguracji do określania docelowych środowisk (opcja targets) i dodawania polyfilli (opcja useBuiltIns) znajdziesz w dokumentacji@babel/preset-env.
Opcja 2: (niezalecana) Ręczne dodawanie polyfilli
Kod polyfill możesz dodawać ręcznie za pomocą ulubionych bibliotek kodu polyfill (np. core-js).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js udostępnia też
plik kodu polyfill typu „wszystko w jednym”
który możesz bezpośrednio dołączyć do strony HTML.
Jeśli nie używasz Babel, ta opcja może być wygodnym sposobem zarządzania polyfillami. Nie zalecamy jednak tej opcji typu „wszystko w jednym” w przypadku aplikacji produkcyjnych produkcyjnych , ponieważ prawdopodobnie będzie ona zawierać niepotrzebne kody polyfill, co zwiększy wagę strony strony, a tym samym wydłuży czas wczytywania strony.