Environnements pris en charge
Le SDK JavaScript Firebase est officiellement pris en charge dans les environnements suivants.
Navigateurs
Produit Firebase | Bord | Firefox | Chrome | iOSSafari | Safari |
---|---|---|---|---|---|
Vérification de l'application | |||||
Analytique | |||||
Authentification | |||||
Cloud Firestore | (sauf persistance) | (sauf persistance si iOS < 10) | |||
Fonctions cloud | |||||
Installations Firebase | |||||
Messagerie en nuage | (Edge 17+, sauf mobile) | ||||
Stockage en ligne | |||||
Suivi de la performance | |||||
Base de données en temps réel | |||||
Configuration à distance |
Autres environnements
Produit Firebase | Réagir natif | Node.js | Chrome Rallonges | Cordoue |
---|---|---|---|---|
Vérification de l'application | (à l'aide d'un fournisseur personnalisé pour effectuer l'attestation de l'appareil natif) | (en utilisant un fournisseur personnalisé ) | ||
Analytique | ||||
Authentification | (voir Remarque ) | (voir Remarque ) | (voir Remarque ) | (voir Remarque ) |
Cloud Firestore | (sauf persistance) | (sauf persistance) | ||
Fonctions cloud | ||||
Installations Firebase | ||||
Messagerie en nuage | ||||
Stockage en ligne | (sauf téléchargements) | |||
Suivi de la performance | ||||
Base de données en temps réel | ||||
Configuration à distance |
Polyfills
Le SDK JavaScript Firebase est construit sur les dernières normes de la plate-forme Web. Certains navigateurs et environnements JavaScript plus anciens ne prennent pas en charge toutes les fonctionnalités requises par Firebase. Si vous devez prendre en charge ces navigateurs/environnements, vous devez charger les polyfills en conséquence.
Les sections ci-dessous identifient la plupart des polyfills dont vous pourriez avoir besoin.
Polyfills requis
Environnements | Polyfills |
---|---|
Safari 7 & 8 & 9 | ES Stable |
Nœud < 6,5 | ES Stable |
Polyfills facultatifs
Environnements | Polyfills | Produits Firebase |
---|---|---|
| aller chercher |
|
| base-64 |
|
Polyfills suggérés
Polyfills | Licence |
---|---|
ES Stable | MIT |
aller chercher | MIT |
base-64 | MIT |
Configuration Polyfill requise pour React Native et Expo
Pour React Native et Expo, si vous téléchargez une chaîne encodée en base 64, vous devez procéder comme suit :
Installez base-64 à partir de npm :
npm install base-64
Importez decode
à partir de base-64
et associez-le au champ d'application global en tant atob
afin que Cloud Storage puisse y accéder.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Ajouter des polyfills dans votre application
Option 1 : (Recommandé) Utiliser le bundler intégré à Babel
Si vous utilisez un bundler, intégrez-le à Babel et @babel/preset-env pour obtenir des polyfills.
Utilisez le guide de configuration interactif de Babel pour apprendre à intégrer Babel à votre bundler.
Avec Babel, vous n'avez pas à vous soucier des polyfills exacts à inclure. Au lieu de cela, vous spécifiez les environnements de navigateur minimaux que vous devez prendre en charge. Babel ajoute ensuite les polyfills nécessaires pour vous. Babel garantit que vos exigences en matière de prise en charge du navigateur sont toujours satisfaites, même si Firebase ou votre propre code commence à utiliser de nouvelles fonctionnalités ES.
@babel/preset-env contient des informations détaillées sur les options de configuration disponibles pour spécifier les cibles d'environnement (option targets
) et ajouter des polyfills (option useBuiltIns
).
Option 2 : (Non recommandé) Ajouter des polyfills manuellement
Vous pouvez ajouter des polyfills manuellement à l'aide de vos bibliothèques de polyfill préférées (par exemple, core-js
).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
fournit également un fichier polyfill tout-en-un que vous pouvez inclure directement dans la page HTML.
Cette option peut être un moyen pratique de gérer les polyfills si vous n'utilisez pas Babel. Cependant, nous ne recommandons pas cette option tout-en-un pour les applications de production car elle inclura probablement des polyfills inutiles, ce qui augmente le poids de la page et donc le temps de chargement de la page.