Środowiska obsługiwane przez pakiet Firebase JavaScript SDK

Obsługiwane środowiska

Pakiet Firebase JavaScript SDK jest oficjalnie obsługiwany w poniższych środowiskach.

Przeglądarki

Usługa Firebase Edge Firefox Chrome, Safari na iOS Safari
Sprawdzanie aplikacji
Analytics
Uwierzytelnianie
Cloud Firestore.
(oprócz
trwałości)

(z wyjątkiem
trwałości
w przypadku urządzeń z systemem iOS < 10)
Funkcje w Cloud Functions
Instalacje Firebase
Komunikacja w chmurze
(Edge 17+, z wyjątkiem urządzeń mobilnych)
Cloud Storage,
Monitorowanie wydajności
Baza danych czasu rzeczywistego
Zdalna konfiguracja
Vertex AI dla Firebase

Inne środowiska

Usługa Firebase Reakcja natywna Node.js Rozszerzenia
Chrome
Kordowa
Sprawdzanie aplikacji
(korzystanie z dostawcy niestandardowego do poświadczania urządzenia natywnego)

(korzystanie z dostawcy niestandardowego)
Analytics
Uwierzytelnianie
(patrz Uwaga)

(patrz Uwaga)

(patrz Uwaga)

(patrz Uwaga)
Cloud Firestore.
(oprócz
trwałości)

(oprócz
trwałości)
Funkcje w Cloud Functions
Instalacje Firebase
Komunikacja w chmurze
Cloud Storage,
(z wyjątkiem
przesłanych plików)
Monitorowanie wydajności
Baza danych czasu rzeczywistego
Zdalna konfiguracja
Vertex AI dla Firebase

Polyfill

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 i środowiska, musisz odpowiednio załadować kod polyfill.

W sekcjach poniżej znajdziesz informacje o większości potrzebnych kodów polyfill.

Wymagane elementy polyfill

Środowiska Polyfill
Safari 7, 8 i 9 Wersja stabilna (ES)
Węzeł < 6.5 Wersja stabilna (ES)

Opcjonalne elementy polyfill

Środowiska Polyfill usług Firebase.
  • Węzeł
  • Safari < 10.1
  • iOS < 10.3
pobieranie
  • Cloud Functions
  • Monitorowanie wydajności
  • Reagowanie natywne i ekspozycje
base-64
  • Cloud Storage

Sugerowane elementy polyfill

Polyfill Licencja
Wersja stabilna ES MIT
pobieranie MIT
base-64 MIT

Wymagana konfiguracja Polyfill dla aplikacji React Native i Expo

W przypadku kreacji natywnych i ekspozycyjnych React, jeśli przesyłasz ciąg zakodowany w standardzie base-64, musisz wykonać te czynności:

Zainstaluj base-64 z npm:

npm install base-64

Zaimportuj plik decode z usługi base-64 i dołącz go do zakresu globalnego jako atob, aby umożliwić Cloud Storage dostęp do niego.

import { decode } from 'base-64';

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

Dodawanie kodu polyfill do aplikacji

Opcja 1. (Zalecane) Użyj pakietu SDK zintegrowanego z Babel

Jeśli korzystasz z programu do tworzenia pakietów, przeprowadź integrację z Babel i @babel/preset-env, aby uzyskać kod polyfill.

Skorzystaj z interaktywnego przewodnika po konfiguracji Babel, aby dowiedzieć się, jak zintegrować Babel z usługą pakietową.

Dzięki Babel nie musisz się martwić o dokładny kod polyfill, który musisz uwzględnić. Zamiast tego musisz określić minimalną liczbę środowisk przeglądarek, które musisz obsługiwać. Babel dodaje potrzebne kody polyfill. Babel dba o to, aby wymagania dotyczące obsługi przeglądarki były zawsze spełnione, nawet jeśli Firebase lub Twój kod zaczną korzystać z nowych funkcji ES.

Adres @babel/preset-env zawiera szczegółowe informacje o dostępnych opcjach konfiguracyjnych dotyczących określania docelowych środowisk (opcja targets) i dodawania elementów polyfill (opcja useBuiltIns).

Opcja 2: (niezalecane) ręczne dodawanie elementów polyfill

Kody polyfill możesz dodać ręcznie za pomocą swoich ulubionych bibliotek polyfill (np. core-js).

import 'core-js/stable'
import 'cross-fetch/polyfill';

core-js udostępnia też kompleksowy plik polyfill, który możesz umieścić bezpośrednio na stronie HTML.

Ta opcja może być wygodnym sposobem zarządzania kodami polyfill, jeśli nie używasz Babel. Nie zalecamy jednak korzystania z tej kompleksowej opcji w przypadku aplikacji produkcyjnych, ponieważ prawdopodobnie będzie ona zawierać zbędne elementy polyfill, co zwiększy wagę strony, a tym samym jej czas wczytywania.