Usa l'emulatore di estensioni per valutare le estensioni

Prima di utilizzare l'emulatore Extensions con la tua app, assicurati che: il flusso di lavoro Firebase Local Emulator Suite generale, e di installare e configurare Local Emulator Suite e rivedi i relativi comandi dell'interfaccia a riga di comando.

Inoltre, presuppone che tu abbia familiarità con Firebase Extensions e su come utilizzarle nelle tue app Firebase.

Cosa posso fare con l'emulatore Extensions?

Con l'emulatore Extensions, puoi installare e gestire le estensioni in un un ambiente locale sicuro e di comprenderne meglio le capacità riducendo al minimo costi di fatturazione. L'emulatore esegue localmente le funzioni dell'estensione, tra cui: attivate da eventi in background utilizzando gli emulatori Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication e Pub/Sub e funzioni attivate da Eventarc implementate in Cloud Functions versione 2.

Scegli un progetto Firebase

L'elemento 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 per ogni emulatore .

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

Tipo di progetto Funzionalità Usa con emulatori
Reale

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

I progetti reali includono risorse in tempo reale, ad esempio istanze di database, bucket, funzioni o qualsiasi altra risorsa configurata per l'account Firebase progetto.

Quando lavori con progetti Firebase reali, puoi eseguire emulatori per qualsiasi 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 nessuna risorsa attiva. Questi progetti sono in genere accessibili tramite codelab o altri tutorial.

Gli ID progetto dei progetti demo hanno il prefisso demo-.

Quando lavori con progetti Firebase dimostrativi, le app e il codice interagiscono con solo 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 i progetti dimostrativi, se possibile. I vantaggi includono:

  • Configurazione più semplice, in quanto è possibile eseguire gli emulatori senza mai creare un Progetto Firebase
  • Maggiore sicurezza, poiché se il codice richiama accidentalmente la modalità non emulata di produzione, non c'è la possibilità che i dati vengano modificati, utilizzati e fatturati
  • Migliore supporto offline, in quanto non è necessario accedere a Internet per scarica la configurazione SDK.
di Gemini Advanced.

Installare e valutare un'estensione

Utilizzo dell'emulatore Extensions per valutare se un'estensione soddisfa le tue è semplice.

Supponiamo che ti interessi l'email di attivazione (firestore-send-email) estensione, anche se il flusso di lavoro seguente copre qualsiasi estensione. Quando l'esecuzione avviene con emulatori locali, L'email di attivazione utilizzerà automaticamente i Cloud Firestore e emulatori Cloud Functions.

Per valutare un'estensione localmente:

  1. Aggiungi l'estensione al file manifest delle estensioni locali. Un file manifest delle estensioni è un elenco delle istanze delle estensioni con le 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 Per saperne di più, consulta Gestire la configurazione delle estensioni con i manifest

  2. Avvia Local Emulator Suite come faresti normalmente.

    firebase emulators:start

Ora, utilizzando l'istanza dell'estensione firestore-send-email elencata in manifest, Local Emulator Suite scaricherà il codice sorgente quell'estensione a ~/.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 ambienti di test non interattivi come per i flussi di lavoro di integrazione, puoi scrivere uno script per il test che, tra gli altri passaggi, compila i dati Cloud Firestore necessari attiva le funzioni. Quindi richiami Local Emulator Suite per eseguire lo script per il 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 molto simile corrisponde all'esperienza di produzione. Tuttavia, esistono alcune differenze rispetto comportamento di produzione.

Cloud IAM

Firebase Emulator Suite non tenta di replicare o rispettare alcuna Comportamento relativo a IAM per l'esecuzione. Gli emulatori rispettano i requisiti di sicurezza di Firebase Sono state fornite regole, 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 tuo 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 installa la tua estensione in un progetto Firebase di test.

Che cosa succede ora?