Ambienti supportati per l'SDK Firebase JavaScript

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
Installazioni Firebase
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
Installazioni Firebase
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 Polifill
Safari 7, 8 e 9 ES stabile
Nodi < 10 ES stabile

Polyfill facoltativi

Ambienti Polyfill Prodotti Firebase
  • Safari < 10.1
  • iOS < 10.3
recupera
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Performance Monitoring
  • Nodo < 18
recupera
  • Authentication
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage
  • React Native ed Expo
base-64
  • Cloud Storage

Polyfill suggeriti

Polyfill Licenza
ES stabile MIT
fetch - "cross-fetch": ideale per 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 stai caricando una stringa codificata in base-64, devi procedere come segue:

Installa base-64 da npm:

npm install base-64

Importa decode da base-64 e collegalo 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: (consigliato) 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. Devi invece specificare gli ambienti minimi del browser 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 manualmente i polyfill utilizzando le tue librerie 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.