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 | (außer Persistenz) |
(außer Persistenz, wenn iOS < 10) |
|||
| Cloud Functions | |||||
| Firebase Installationen | |||||
| Cloud Messaging | (Edge 17+, außer Mobilgeräte) |
||||
| Cloud Storage | |||||
| SQL 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 zur nativen Gerätebestätigung) |
(mit einem benutzerdefinierten Anbieter) |
||
| Analytics | ||||
| Authentication | (siehe Hinweis) |
(siehe Hinweis) |
(siehe Hinweis) |
(siehe Hinweis) |
| Cloud Firestore | (außer Persistenz) |
(außer Persistenz) |
||
| Cloud Functions | ||||
| SQL 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 von Firebase benötigten Funktionen. 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 |
| Node < 10 | ES Stable |
Optionale Polyfills
| Umgebungen | Polyfills | Firebase-Produkte |
|---|---|---|
|
Abrufen |
|
|
Abrufen |
|
|
Base64 |
|
Empfohlene Polyfills
| Polyfills | Lizenz |
|---|---|
| ES Stable | MIT |
| Abrufen – `cross-fetch` – am besten für ältere Browser | MIT |
| Abrufen – `undici` – am besten für Node.js | MIT |
| Base64 | MIT |
Erforderliche Polyfill-Einrichtung für React Native und Expo
Wenn Sie in React Native und Expo einen Base64-codierten String hochladen, müssen Sie Folgendes tun:
Installieren Sie Base64 von npm:
npm install base-64
Importieren Sie decode aus base-64 und fügen Sie es als atob in den globalen Bereich ein, 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) Bundler mit Babel verwenden
Wenn Sie einen Bundler verwenden, integrieren Sie ihn mit Babel und @babel/preset-env, 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 über die genauen Polyfills machen, die 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 sind, 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 Umgebungs
zielen (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 die Seitengröße und damit die Seitenladezeit erhöht.