Prima di utilizzare l'emulatore Extensions con la tua app, assicurati di comprendere il Firebase Local Emulator Suite flusso di lavoro complessivo e 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 il modo di utilizzarli nelle tue app Firebase.
Che cosa posso fare con l'emulatore Extensions?
Con l'emulatore Extensions, puoi installare e gestire le estensioni in un ambiente locale sicuro e comprendere meglio le loro funzionalità riducendo al minimo i costi di fatturazione. L'emulatore esegue localmente le funzioni dell'estensione, incluse le funzioni attivate da eventi in background utilizzando 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.
Scegliere 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 CLI nella directory di lavoro. In alternativa, puoi passare
il flag --project
a ogni comando
dell'emulatore.
Local Emulator Suite supporta l'emulazione di progetti Firebase reali e dimostrativi.
Tipo di progetto | Funzionalità | Utilizzo con emulatori |
---|---|---|
Reale |
Un progetto Firebase reale è un progetto 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 quel progetto Firebase. |
Quando lavori con progetti Firebase reali, puoi eseguire emulatori per uno o tutti i prodotti supportati. Per i prodotti che non emuli, le tue app e il tuo codice interagiranno con la risorsa live (istanza di database, bucket di archiviazione, funzione e così via). |
Demo |
Un progetto Firebase dimostrativo non ha una configurazione Firebase reale e nessuna risorsa live. 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 i progetti demo Firebase, le tue app e il tuo codice interagiscono solo con gli emulatori. Se la tua app tenta di interagire con una risorsa per cui non è in esecuzione un emulatore, il codice non funzionerà. |
Ti consigliamo di utilizzare i progetti demo, se possibile. I vantaggi includono:
- Configurazione più semplice, in quanto puoi eseguire gli emulatori senza creare un progetto Firebase
- Maggiore sicurezza, perché se il codice richiama accidentalmente risorse non emulate (di produzione), non c'è possibilità di modifica dei dati, utilizzo e fatturazione
- Migliore supporto offline, in quanto non è necessario accedere a internet per scaricare la configurazione dell'SDK.
Installare e valutare un'estensione
L'utilizzo dell'emulatore Extensions per valutare se un'estensione soddisfa le tue esigenze è semplice.
Supponiamo che ti interessi l'estensione Trigger Email
(firestore-send-email
),
anche se il seguente flusso di lavoro copre qualsiasi estensione. Se eseguito con emulatori locali,
Trigger Email utilizzerà automaticamente gli emulatori Cloud Firestore e
Cloud Functions.
Per valutare un'estensione localmente:
Aggiungi l'estensione al manifest delle estensioni locali. Un manifest delle estensioni è un elenco di istanze di estensione e delle relative configurazioni.
firebase ext:install --local firebase/firestore-send-email
L'esecuzione del comando precedente ti chiederà di configurare l'ultima versione dell'estensione
firebase/firestore-send-email
e di salvare la configurazione nel manifest, ma non la eseguirà nel tuo progetto. Per maggiori informazioni, vedi Gestire la configurazione delle estensioni con i manifest.Avvia la Local Emulator Suite come faresti normalmente.
firebase emulators:start
Ora, utilizzando l'istanza dell'estensione firestore-send-email
elencata nel manifest, Local Emulator Suite scaricherà il codice sorgente dell'estensione in ~/.cache/firebase/extensions
. Una volta scaricate le origini, verrà avviato Local Emulator Suite e potrai attivare una qualsiasi delle funzioni attivate in background dell'estensione e connettere la tua app a Local Emulator Suite per testare la loro integrazione con la tua app.
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 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. A questo punto, invocheresti 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 da riprodurre fedelmente l'esperienza di produzione. Tuttavia, ci sono alcune differenze rispetto al comportamento di produzione.
Cloud IAM
Firebase Emulator Suite non tenta di replicare o rispettare alcun comportamento correlato a IAM per l'esecuzione. Gli emulatori rispettano le regole di sicurezza di Firebase fornite, ma nelle situazioni in cui normalmente viene utilizzato IAM, ad esempio per impostare il service account di chiamata di Cloud Functions e quindi le autorizzazioni, l'emulatore non è configurabile e utilizzerà l'account disponibile a livello globale sulla macchina dello sviluppatore, in modo simile all'esecuzione diretta di uno script locale.
Limitazione del tipo di attivazione
Al momento, Firebase Local Emulator Suite supporta solo le funzioni attivate da richieste HTTP, i trigger 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 serie selezionata di video ed esempi pratici dettagliati, segui la playlist di formazione su Firebase Emulators.