Prima di utilizzare l'emulatore Extensions con la tua app, assicurati di aver compreso il flusso di lavoro generale di Firebase Local Emulator Suite, di installare e configurare Local Emulator Suite e rivedere i relativi comandi CLI.
Questa guida presuppone inoltre che tu abbia familiarità con Firebase Extensions e con le modalità di utilizzo nelle tue app Firebase.
Cosa posso fare con l'emulatore Extensions?
Con l'emulatore Extensions puoi installare e gestire le estensioni in un ambiente locale sicuro e comprenderne meglio le funzionalità, riducendo al minimo i costi di fatturazione. L'emulatore esegue le funzioni dell'estensione localmente, incluse le funzioni attivate da eventi in background che utilizzano gli emulatori per Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication e Pub/Sub, nonché le funzioni attivate da Eventarc implementate in Cloud Functions v2.
Scegli un progetto Firebase
Firebase Local Emulator Suite emula i prodotti per un singolo progetto Firebase.
Per selezionare il progetto da utilizzare, prima di avviare gli emulatori, esegui firebase use
nella directory di lavoro in CLI. In alternativa, puoi passare il flag --project
a ogni comando dell'emulatore.
Local Emulator Suite supporta l'emulazione di progetti Firebase reali e progetti dimostrativi.
Tipo di progetto | Funzionalità | Utilizzo con emulatori |
---|---|---|
Reale |
Un progetto Firebase reale è quello che hai creato e configurato (molto probabilmente tramite la console Firebase). I progetti reali hanno risorse attive, come istanze di database, bucket di archiviazione, funzioni o qualsiasi altra risorsa configurata per il progetto Firebase. |
Quando lavori con progetti Firebase reali, puoi eseguire emulatori per uno o tutti i prodotti supportati. Per tutti i prodotti che non stai emulando, le tue app e il tuo codice interagiranno con la risorsa in produzione (istanza di database, bucket di archiviazione, funzione e così via). |
Demo |
Un progetto Firebase dimostrativo non ha una configurazione Firebase reale e non ha risorse attive. In genere, si accede a questi progetti tramite codelab o altri tutorial. Gli ID progetto per i progetti demo hanno il prefisso |
Quando lavori con progetti Firebase dimostrativi, le app e il codice interagiscono solo con gli emulatori. Se la tua app tenta di interagire con una risorsa per la quale non è in esecuzione un emulatore, il codice non andrà a buon fine. |
Ti consigliamo di utilizzare progetti demo, se possibile. I vantaggi includono:
- Configurazione più semplice, poiché puoi eseguire gli emulatori senza dover creare un progetto Firebase
- Maggiore sicurezza, poiché se il codice richiama accidentalmente risorse non emulate (di produzione), non esiste la possibilità che i dati vengano modificati, utilizzo e fatturazione
- Migliore supporto offline, in quanto non è necessario accedere a internet per scaricare la configurazione dell'SDK.
Installare e valutare un'estensione
Utilizzare l'emulatore Extensions per valutare se un'estensione soddisfa le tue esigenze è semplice.
Supponiamo che tu sia interessato all'estensione Email di attivazione (firestore-send-email
), anche se il seguente flusso di lavoro copre qualsiasi estensione. Se viene eseguito con emulatori locali, Trigger Email utilizzerà automaticamente gli emulatori Cloud Firestore e Cloud Functions.
Per valutare un'estensione localmente:
Aggiungi l'estensione al file manifest delle estensioni locali. Un manifest delle estensioni è un elenco di istanze di estensioni e delle relative configurazioni.
firebase ext:install --local firebase/firestore-send-email
L'esecuzione del comando riportato sopra ti chiederà di configurare la versione più recente dell'estensione
firebase/firestore-send-email
e di salvare la configurazione nel manifest, ma non eseguirà il deployment della configurazione nel progetto. Per approfondire, consulta Gestire la configurazione delle estensioni con i manifestAvvia Local Emulator Suite come faresti normalmente.
firebase emulators:start
Ora, utilizzando l'istanza dell'estensione firestore-send-email
elencata nel
tuo manifest, Local Emulator Suite scaricherà il codice sorgente di
questa estensione in ~/.cache/firebase/extensions
. Una volta scaricati i file di origine, verrà avviato Local Emulator Suite e potrai attivare qualsiasi funzione attivata in background dell'estensione e collegare la tua app a Local Emulator Suite per testarne l'integrazione.
Puoi utilizzare Emulator Suite UI per aggiungere dati alla raccolta di documenti email e configurare altre risorse di backend, come richiesto dall'estensione Trigger Email.
In alternativa, per gli ambienti di test non interattivi come i flussi di lavoro di integrazione continua, puoi scrivere uno script di test per valutare l'estensione che, tra gli altri passaggi, compila i dati Cloud Firestore necessari e attiva le funzioni. Dovresti quindi invocare Local Emulator Suite per eseguire lo script di test:
firebase emulators:exec my-test.sh
Differenze tra i test con l'emulatore Extensions e la produzione
L'emulatore Extensions ti consente di testare le estensioni in modo che corrispondano il più possibile all'esperienza di produzione. Tuttavia, esistono alcune differenze rispetto al comportamento di produzione.
Cloud IAM
Firebase Emulator Suite non tenta di replicare o rispettare alcun comportamento correlato all'IAM per l'esecuzione. Gli emulatori seguono le regole di sicurezza Firebase fornite, ma nelle situazioni in cui viene normalmente utilizzato IAM, ad esempio per impostare Cloud Functions richiamando l'account di servizio e quindi le autorizzazioni, l'emulatore non è configurabile e utilizzerà l'account disponibile a livello globale sul computer di sviluppo, in modo simile all'esecuzione diretta di uno script locale.
Limitazione del tipo di trigger
Al momento, Firebase Local Emulator Suite supporta solo le funzioni attivate da richieste HTTP, gli attivatori di eventi personalizzati Eventarc per le estensioni e le funzioni attivate da eventi in background per Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication e Pub/Sub. Per valutare le estensioni che utilizzano altri tipi di funzioni attivate, devi installare l'estensione in un progetto Firebase di test.
Che cosa succede ora?
- Per una raccolta selezionata di video ed esempi dettagliati di istruzioni, segui la playlist di formazione sugli emulatori Firebase.