Obsługiwane środowiska
Pakiet Firebase JavaScript SDK jest oficjalnie obsługiwany w tych środowiskach:
Przeglądarki
Usługa Firebase | Edge | Firefox | Chrome | iOS Safari | Safari |
---|---|---|---|---|---|
Firebase AI Logic 1 | |||||
Analytics | |||||
App Check | |||||
Authentication | |||||
Cloud Firestore | (except persistence) |
(z wyjątkiem trwałości w przypadku iOS < 10) |
|||
Cloud Functions | |||||
Firebase instalacje | |||||
Cloud Messaging | (Edge 17 lub nowszy, z wyjątkiem urządzeń mobilnych) |
||||
Cloud Storage | |||||
Data Connect | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config |
1 Firebase AI Logic wcześniej nosiło nazwę „Vertex AI in Firebase”
Inne środowiska
Usługa Firebase | React Native | Node.js (18+) | Chrome Extensions |
Cordova |
---|---|---|---|---|
Firebase AI Logic 1 | ||||
App Check | (przy użyciu niestandardowego dostawcy do atestowania urządzenia natywnego) |
(przy użyciu dostawcy niestandardowego) |
||
Analytics | ||||
Authentication | (patrz Uwaga) |
(patrz Uwaga) |
(patrz Uwaga) |
(patrz Uwaga) |
Cloud Firestore | (except persistence) |
(except persistence) |
||
Cloud Functions | ||||
Data Connect | ||||
Firebase instalacje | ||||
Cloud Messaging | ||||
Cloud Storage | (z wyjątkiem przesyłania) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config |
1 Firebase AI Logic wcześniej nosiło nazwę „Vertex AI in Firebase”
Kody polyfill
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 polyfille
Środowiska | Polyfill |
---|---|
Safari 7, 8 i 9 | ES Stable |
Węzeł < 10 | ES Stable |
Opcjonalne polyfille
Środowiska | Polyfill | Usługi Firebase |
---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
Sugerowane polyfille
Polyfill | Licencja |
---|---|
ES Stabilna | MIT |
fetch – `cross-fetch` – najlepsza opcja w przypadku starszych przeglądarek | MIT |
fetch – `undici` – najlepsza opcja w przypadku Node.js | MIT |
base-64 | MIT |
Wymagana konfiguracja Polyfill w przypadku React Native i Expo
Jeśli w przypadku React Native i Expo przesyłasz ciąg tekstowy zakodowany w formacie 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 w aplikacji funkcji polyfill
Opcja 1: (zalecana) użyj narzędzia do łączenia plików zintegrowanego z Babel
Jeśli używasz narzędzia do łączenia modułów, zintegruj je z Babel i @babel/preset-env, aby uzyskać polyfille.
Skorzystaj z interaktywnego przewodnika po konfiguracji Babel, aby dowiedzieć się, jak zintegrować Babel z narzędziem do łączenia modułów.
Babel nie wymaga, abyś martwił się o dokładne polyfille, które należy uwzględnić. Zamiast tego określasz minimalne środowiska przeglądarki, które chcesz obsługiwać. Babel doda wtedy niezbędne polyfille. Babel dba o to, aby 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.
@babel/preset-env zawiera szczegółowe informacje o dostępnych opcjach konfiguracji, które umożliwiają określanie docelowych środowisk (opcja targets
) i dodawanie polyfilli (opcja useBuiltIns
).
Opcja 2: (niezalecana) ręczne dodawanie polyfilli
Możesz ręcznie dodać polyfille, korzystając z ulubionych bibliotek polyfilli (np. core-js
).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
udostępnia też wszechstronny plik polyfill, który możesz bezpośrednio umieścić na stronie HTML.
Jeśli nie używasz Babel, ta opcja może być wygodnym sposobem zarządzania polyfillami. Nie zalecamy jednak tej opcji „wszystko w jednym” w przypadku aplikacji produkcyjnych, ponieważ prawdopodobnie będzie ona zawierać niepotrzebne polyfille, co zwiększy rozmiar strony, a tym samym czas jej wczytywania.