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 do 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)

(zobacz uwagę).
Cloud Firestore
(z wyjątkiem trwałości
)

(z wyjątkiem
trwałości)
Cloud Functions
Instalacje: Firebase
Cloud Messaging
Cloud Storage
(z wyjątkiem przesyłanych plików
)
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ć polyfille.

W sekcjach poniżej znajdziesz większość polyfilli, których możesz potrzebować.

Wymagane rozwiązania zastępcze

Środowiska Polyfill
Safari 7, 8 i 9 Stabilny ES
Węzeł < 10 ES Stabilna

Opcjonalne rozwiązania zastępcze

Środowiska Polyfill 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 rozwiązania zastępcze

Wypełniacze Licencja
ES Stabilna MIT
fetch – „pobieranie między sobą” – najlepsze 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 plik decode z usługi base-64 i podłącz go do zakresu globalnego jako atob, aby usługa Cloud Storage miała do niego dostęp.

import { decode } from 'base-64';

if(typeof atob === 'undefined') {
  global.atob = decode;
}

Dodaj kod polyfill w aplikacji

Opcja 1: (zalecana) użyj narzędzia do tworzenia pakietów zintegrowanego z Babel

Jeśli używasz pakietu, zintegruj się z Babelem@babel/preset-env, aby uzyskać polyfilly.

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ć. W tym celu określasz minimalną liczbę środowisk przeglądarek, które mają być obsługiwane. 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: (nie zalecane) Dodaj polyfills 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ż wszechstronny plik polyfill, który możesz umieścić bezpośrednio 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.