Ambienti supportati
L'SDK Firebase JavaScript è supportato ufficialmente nei seguenti ambienti.
Browser
Prodotto Firebase | Edge | Firefox | Chrome | Safari per iOS | Safari |
---|---|---|---|---|---|
App Check | |||||
Analytics | |||||
Authentication | |||||
Cloud Firestore | (tranne la persistenza) |
(tranne persistenza se iOS < 10) |
|||
Cloud Functions | |||||
Firebase installazioni | |||||
Cloud Messaging | (Edge 17 e versioni successive, tranne su dispositivi mobili) |
||||
Cloud Storage | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config | |||||
Vertex AI in Firebase |
Altri ambienti
Prodotto Firebase | React Native | Node.js (18+) | Estensioni di Chrome |
Cordova |
---|---|---|---|---|
App Check | (utilizzando un provider personalizzato per l'attestazione del dispositivo nativo) |
(utilizzando un fornitore personalizzato) |
||
Analytics | ||||
Authentication | (vedi Nota) |
(vedi Nota) |
(vedi Nota) |
(vedi Nota) |
Cloud Firestore | (tranne la persistenza) |
(tranne la persistenza) |
||
Cloud Functions | ||||
Data Connect | ||||
Firebase installazioni | ||||
Cloud Messaging | ||||
Cloud Storage | (tranne i caricamenti) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config | ||||
Vertex AI in Firebase |
Polyfill
L'SDK Firebase JavaScript è basato sugli standard più recenti della piattaforma web. Alcuni browser e ambienti JavaScript meno recenti non supportano tutte le funzionalità richieste da Firebase. Se devi supportare questi browser/ambienti, devi caricare i polyfill di conseguenza.
Le sezioni seguenti identificano la maggior parte dei polyfill di cui potresti aver bisogno.
Polyfill obbligatori
Ambienti | Polyfill |
---|---|
Safari 7, 8 e 9 | ES stabile |
Nodi < 10 | ES stabile |
Polyfill facoltativi
Ambienti | Polyfill | Prodotti Firebase |
---|---|---|
|
recupera |
|
|
recupera |
|
|
base-64 |
|
Polyfill suggeriti
Polyfill | Licenza |
---|---|
ES Stabile | MIT |
fetch - "cross-fetch" - ideale per i browser meno recenti | MIT |
fetch - `undici` - ideale per Node.js | MIT |
base-64 | MIT |
Configurazione richiesta di Polyfill per React Native ed Expo
Per React Native ed Expo, se carichi una stringa con codifica base-64, devi eseguire i seguenti passaggi:
Installa base-64 da npm:
npm install base-64
Importa decode
da base-64
e associalo all'ambito globale come atob
in modo che Cloud Storage possa accedervi.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Aggiungere polyfill all'applicazione
Opzione 1: (consigliata) utilizza il bundler integrato con Babel
Se utilizzi un bundler, esegui l'integrazione con Babel e @babel/preset-env per ottenere polyfill.
Utilizza la guida alla configurazione interattiva di Babel per scoprire come integrare Babel con il tuo bundler.
Con Babel non devi preoccuparti dei polyfill esatti da includere. Specifica invece gli ambienti browser minimi che devi supportare. Babel aggiunge quindi i polyfill necessari. Babel garantisce che i requisiti per il supporto del browser siano sempre soddisfatti, anche se Firebase o il tuo codice iniziano a utilizzare nuove funzionalità di ES.
@babel/preset-env contiene informazioni dettagliate sulle opzioni di configurazione disponibili per specificare i target di ambiente (opzione targets
) e aggiungere polyfill (opzione useBuiltIns
).
Opzione 2: (non consigliata) aggiungi i polyfill manualmente
Puoi aggiungere i polyfill manualmente utilizzando le tue librerie di polyfill preferite (ad esempio core-js
).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
fornisce anche un
file polyfill all-in-one
che puoi includere direttamente nella pagina HTML.
Questa opzione può essere un modo pratico per gestire i polyfill se non utilizzi Babel. Tuttavia, non consigliamo questa opzione all-in-one per le app di produzione, in quanto probabilmente includerà polyfill non necessari, che aumentano il peso della pagina e di conseguenza il tempo di caricamento.