Obsługiwane środowiska pakietu SDK Firebase JavaScript

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
  • Safari w wersji < 10.1
  • iOS <10.3
pobieranie
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Węzeł Poniżej 18 lat
pobieranie
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native i Expo
base-64
  • Cloud Storage

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.