Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Usa l'emulatore di estensioni per valutare le estensioni

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Prima di utilizzare l'emulatore di estensioni con la tua app, assicurati di aver compreso il flusso di lavoro generale di Firebase Local Emulator Suite e di installare e configurare Local Emulator Suite e di rivedere i suoi comandi CLI .

Questa guida presuppone anche che tu abbia familiarità con le estensioni Firebase e come utilizzarle nelle tue app Firebase .

Cosa posso fare con l'emulatore di estensioni?

Con l'emulatore di estensioni, puoi installare e gestire le estensioni in un ambiente locale sicuro e comprenderne meglio le capacità riducendo al minimo i costi di fatturazione. L'emulatore esegue le funzioni dell'estensione in locale, comprese le funzioni attivate da eventi in background utilizzando gli emulatori per Cloud Firestore, Realtime Database, Cloud Storage, Authentication e Pub/Sub e 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, nella CLI esegui firebase use nella tua directory di lavoro. Oppure puoi passare il flag --project a ciascun comando dell'emulatore.

Local Emulator Suite supporta l'emulazione di progetti Firebase reali e progetti demo .

Tipo di progetto Caratteristiche Utilizzare con emulatori
Vero

Un vero progetto Firebase è quello che hai creato e configurato (molto probabilmente tramite la console Firebase).

I progetti reali hanno risorse in tempo reale, 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 tutti i prodotti che non stai emulando, le tue app e il codice interagiranno con la risorsa live (istanza del database, bucket di archiviazione, funzione, ecc.).

Demo

Un progetto Firebase demo non ha una configurazione Firebase reale e nessuna risorsa attiva. Questi progetti sono generalmente accessibili tramite codelab o altri tutorial.

Gli ID progetto per i progetti demo hanno il demo- demo.

Quando lavori con progetti Firebase demo, le tue app e il codice interagiscono solo con gli emulatori . Se l'app tenta di interagire con una risorsa per la quale non è in esecuzione un emulatore, il codice avrà esito negativo.

Ti consigliamo di utilizzare progetti demo ove possibile. I vantaggi includono:

  • Configurazione più semplice, poiché puoi eseguire gli emulatori senza mai creare un progetto Firebase
  • Maggiore sicurezza, poiché se il codice richiama accidentalmente risorse (di produzione) non emulate, non vi è alcuna possibilità di modifica, utilizzo e fatturazione dei dati
  • Migliore supporto offline, poiché non è necessario accedere a Internet per scaricare la configurazione dell'SDK.

Installa e valuta un'estensione

L'utilizzo dell'emulatore di estensioni per valutare se un'estensione soddisfa le tue esigenze è semplice.

Supponiamo che tu sia interessato all'estensione Trigger Email ( firestore-send-email ) , sebbene il flusso di lavoro seguente copra qualsiasi estensione . Quando viene eseguito con emulatori locali, Trigger Email utilizzerà automaticamente gli emulatori Cloud Firestore e Cloud Functions.

Per valutare un'estensione localmente:

  1. Aggiungi l'estensione al manifest delle estensioni locali. Un manifest delle estensioni è un elenco di istanze di estensioni e le relative configurazioni.

    firebase ext:install --local firebase/firestore-send-email

    L'esecuzione del comando precedente ti chiederà di configurare l'ultima versione firebase/firestore-send-email e di salvare la configurazione nel manifest, ma non distribuirà la configurazione al tuo progetto. Per ulteriori informazioni, consulta Gestire la configurazione delle estensioni con i manifest

  2. 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 di tale estensione in ~/.cache/firebase/extensions . Una volta che le soures sono state scaricate, Local Emulator Suite si avvierà e sarai in grado di attivare qualsiasi funzione attivata in background dell'estensione e connettere la tua app alla Local Emulator Suite per testare la loro integrazione con la tua app.

È possibile utilizzare l'interfaccia utente di Emulator Suite per aggiungere dati alla raccolta di documenti e-mail e configurare altre risorse di back-end, 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, popola 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

In che modo il test con l'emulatore di estensioni differisce dalla produzione

L'emulatore di estensioni ti consente di testare le estensioni in un modo che si avvicina molto all'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 relativo a IAM per l'esecuzione. Gli emulatori aderiscono alle regole di sicurezza Firebase fornite, ma in situazioni in cui IAM verrebbe normalmente utilizzato, 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 sulla macchina dello sviluppatore, simile all'esecuzione diretta di uno script locale.

Limitazione del tipo di attivazione

Attualmente, Firebase Local Emulator Suite supporta solo funzioni attivate da richiesta HTTP, trigger di eventi personalizzati Eventarc per le estensioni e funzioni attivate da eventi in background per Cloud Firestore, Realtime Database, Cloud Storage, Authentication e Pub/Sub. Per valutare le estensioni che utilizzano altri tipi di funzioni attivate, devi installare la tua estensione in un progetto Firebase di prova.

E dopo?