Unterstützte Umgebungen für das Firebase JavaScript SDK

Unterstützte Umgebungen

Das Firebase JavaScript SDK wird offiziell in den folgenden Umgebungen unterstützt.

Browser

Firebase-Produkt Edge Firefox Chrome iOS Safari Safari
Firebase AI Logic 1
Analytics
App Check
Authentication
Cloud Firestore
(except
persistence)

(außer
Persistenz
bei iOS < 10)
Cloud Functions
Firebase-Installationen
Cloud Messaging
(Edge 17+, außer auf Mobilgeräten)
Cloud Storage
Data Connect
Performance Monitoring
Realtime Database
Remote Config

1 Firebase AI Logic hieß früher „Vertex AI in Firebase“.

Andere Umgebungen

Firebase-Produkt React Native Node.js (18+) Chrome
Erweiterungen
Cordova
Firebase AI Logic 1
App Check
(mit einem benutzerdefinierten Anbieter für die native Geräteattestierung)

(mit einem benutzerdefinierten Anbieter)
Analytics
Authentication
(siehe Hinweis)

(siehe Hinweis)

(siehe Hinweis)

(siehe Hinweis)
Cloud Firestore
(except
persistence)

(except
persistence)
Cloud Functions
Data Connect
Firebase-Installationen
Cloud Messaging
Cloud Storage
(außer
Uploads)
Performance Monitoring
Realtime Database
Remote Config

1 Firebase AI Logic hieß früher „Vertex AI in Firebase“.

Polyfills

Das Firebase JavaScript SDK basiert auf den neuesten Standards der Webplattform. Einige ältere Browser und JavaScript-Umgebungen unterstützen nicht alle Funktionen, die für Firebase erforderlich sind. Wenn Sie diese Browser/Umgebungen unterstützen müssen, müssen Sie die entsprechenden Polyfills laden.

In den folgenden Abschnitten werden die meisten Polyfills aufgeführt, die Sie möglicherweise benötigen.

Erforderliche Polyfills

Umgebungen Polyfills
Safari 7, 8 und 9 ES Stable
Knoten < 10 ES Stable

Optionale Polyfills

Umgebungen Polyfills Firebase-Produkte
  • Safari < 10.1
  • iOS < 10.3
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Knoten < 18
fetch
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native und Expo
base-64
  • Cloud Storage

Vorgeschlagene Polyfills

Polyfills Lizenz
ES Stabil MIT
fetch – `cross-fetch` – am besten für ältere Browser geeignet MIT
fetch – `undici` – am besten für Node.js MIT
base-64 MIT

Erforderliche Polyfill-Einrichtung für React Native und Expo

Wenn Sie für React Native und Expo einen base64-codierten String hochladen, müssen Sie Folgendes tun:

Installieren Sie base-64 über npm:

npm install base-64

Importieren Sie decode aus base-64 und hängen Sie es als atob an den globalen Bereich an, damit Cloud Storage darauf zugreifen kann.

import { decode } from 'base-64';

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

Polyfills in Ihre Anwendung einfügen

Option 1: (Empfohlen) Bundler mit Babel verwenden

Wenn Sie einen Bundler verwenden, binden Sie Babel und @babel/preset-env ein, um Polyfills zu erhalten.

Im interaktiven Einrichtungsleitfaden von Babel erfahren Sie, wie Sie Babel in Ihren Bundler einbinden.

Mit Babel müssen Sie sich keine Gedanken darüber machen, welche Polyfills Sie einfügen müssen. Stattdessen geben Sie die minimalen Browserumgebungen an, die Sie unterstützen müssen. Babel fügt dann die erforderlichen Polyfills für Sie hinzu. Babel sorgt dafür, dass Ihre Anforderungen an die Browserunterstützung immer erfüllt werden, auch wenn Firebase oder Ihr eigener Code neue ES-Funktionen verwendet.

@babel/preset-env enthält detaillierte Informationen zu den verfügbaren Konfigurationsoptionen zum Angeben von Umgebungszielen (Option targets) und zum Hinzufügen von Polyfills (Option useBuiltIns).

Option 2: (Nicht empfohlen) Polyfills manuell hinzufügen

Sie können Polyfills manuell mit Ihren bevorzugten Polyfill-Bibliotheken hinzufügen, z. B. core-js.

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

core-js bietet auch eine All-in-One-Polyfill-Datei, die Sie direkt in die HTML-Seite einfügen können.

Diese Option kann eine praktische Möglichkeit zum Verwalten von Polyfills sein, wenn Sie Babel nicht verwenden. Wir empfehlen diese All-in-One-Option jedoch nicht für Produktions-Apps, da sie wahrscheinlich unnötige Polyfills enthält, was das Seitengewicht und damit die Seitenladezeit erhöht.