Obsługiwane środowiska pakietu SDK Firebase JavaScript

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
  • Safari w wersji < 10.1
  • iOS w wersji < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Node w wersji < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native i Expo
base-64
  • Cloud Storage

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.