Unterstützte Umgebungen
Das Firebase JavaScript SDK wird offiziell in den folgenden Umgebungen unterstützt.
Browser
Firebase-Produkt | Edge | Firefox | Chrome | iOS Safari | Safari |
---|---|---|---|---|---|
App Check | |||||
Analytics | |||||
Authentication | |||||
Cloud Firestore | (except persistence) |
(außer persistence bei iOS < 10) |
|||
Cloud Functions | |||||
Firebase Installationen | |||||
Cloud Messaging | (Edge 17 und höher, außer Mobilgeräte) |
||||
Cloud Storage | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config | |||||
Vertex AI in Firebase |
Andere Umgebungen
Firebase-Produkt | React Native | Node.js (18+) | Chrome- Erweiterungen |
Cordova |
---|---|---|---|---|
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 | ||||
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 für Firebase erforderlichen Funktionen. Wenn Sie diese Browser/Umgebungen unterstützen müssen, müssen Sie entsprechend 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 |
---|---|---|
|
abrufen |
|
|
abrufen |
|
|
Base64 |
|
Vorgeschlagene Polyfills
Polyfills | Lizenz |
---|---|
ES Stable | MIT |
fetch – „cross-fetch“ – am besten für ältere Browser | MIT |
fetch – undici – am besten für Node.js | MIT |
Base64 | MIT |
Erforderliche Polyfill-Einrichtung für React Native und Expo
Wenn Sie für React Native und Expo einen base64-codierten String hochladen, gehen Sie so vor:
Installiere base-64 über npm:
npm install base-64
Importieren Sie decode
aus base-64
und hängen Sie es als atob
an den globalen Gültigkeitsbereich an, damit Cloud Storage darauf zugreifen kann.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Polyfills in Ihrer Anwendung hinzufügen
Option 1: (Empfohlen) Mit Babel integriertes Bundler verwenden
Wenn Sie einen Bundler verwenden, integrieren Sie Babel und @babel/preset-env, um Polyfills zu erhalten.
In der interaktiven Einrichtungsanleitung von Babel erfahren Sie, wie Sie Babel in Ihren Bundler einbinden.
Mit Babel müssen Sie sich keine Gedanken über die genauen polyfills machen, die Sie einschließen müssen. Stattdessen geben Sie die Mindestbrowserumgebungen an, die Sie unterstützen müssen. Babel fügt dann die erforderlichen Polyfills hinzu. Babel sorgt dafür, dass Ihre Anforderungen an den Browsersupport immer erfüllt werden, auch wenn in Firebase oder Ihrem eigenen Code neue ES-Funktionen verwendet werden.
@babel/preset-env enthält ausführliche 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 einbinden 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.