Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Esegui le funzioni localmente

La CLI di Firebase include un emulatore di funzioni cloud che può emulare i seguenti tipi di funzioni:

  • Funzioni HTTPS
  • Funzioni richiamabili
  • Funzioni Cloud Firestore

È possibile eseguire le funzioni localmente per testarle prima di distribuirle alla produzione.

Installa la CLI di Firebase

Per utilizzare l'emulatore Funzioni cloud, installa prima l'interfaccia della riga di comando di Firebase:

npm install -g firebase-tools

Per utilizzare l'emulatore locale, le tue funzioni cloud devono dipendere da:

  • firebase-admin versione 8.0.0 o successiva.
  • firebase-functions versione 3.0.0 o successive.

Imposta credenziali di amministratore (facoltativo)

Se si desidera che i test delle funzioni interagiscano con le API di Google o altre API di Firebase tramite l' SDK di Firebase Admin , potrebbe essere necessario impostare le credenziali di amministratore.

  • I trigger di Cloud Firestore e Realtime Database dispongono già di credenziali sufficienti e non richiedono un'installazione aggiuntiva.
  • Tutte le altre API, incluse le API Firebase come Authentication e FCM o le API di Google come Cloud Translation o Cloud Speech, richiedono i passaggi di installazione descritti in questa sezione. Questo vale sia per le funzioni shell che per firebase emulators:start .

Per impostare le credenziali di amministratore per le funzioni emulate:

  1. Apri il riquadro Account di servizio di Google Cloud Console.
  2. Assicurati che sia selezionato l' account del servizio predefinito di App Engine e utilizza il menu delle opzioni a destra per selezionare Crea chiave .
  3. Quando richiesto, selezionare JSON per il tipo di chiave e fare clic su Crea .
  4. Imposta le tue credenziali predefinite di Google in modo che puntino alla chiave scaricata:

    Unix

     $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
     

    finestre

     $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
     

Dopo aver completato questi passaggi, i test delle funzioni possono accedere a Firebase e alle API di Google utilizzando Admin SDK . Ad esempio, durante il test di un trigger di autenticazione, la funzione emulata potrebbe chiamare admin.auth().getUserByEmail(email) .

Configura configurazione funzioni (opzionale)

Se si utilizzano variabili di configurazione delle funzioni personalizzate, eseguire prima il comando per ottenere la propria configurazione personalizzata (eseguirla nella directory delle functions ) nel proprio ambiente locale:

 firebase functions:config:get > .runtimeconfig.json
# If using Windows PowerShell, replace the above with:
# firebase functions:config:get | ac .runtimeconfig.json
firebase functions:shell
 

Esegui la suite dell'emulatore

Per eseguire l'emulatore di funzioni cloud, utilizzare gli emulators:start comando di emulators:start :

firebase emulators:start

Gli emulators:start comando emulators:start avvierà gli emulatori per le funzioni cloud, Cloud Firestore, Realtime Database e Firebase Hosting in base ai prodotti che hai inizializzato nel tuo progetto locale usando firebase init . Se vuoi avviare un emulatore particolare, usa il flag --only :

firebase emulators:start --only functions

Se si desidera eseguire una suite di test o uno script di test dopo l'avvio degli emulators:exec , utilizzare il comando emulators:exec :

firebase emulators:exec "./my-test.sh"

Interazioni con altri servizi

La suite di emulatori include più emulatori, che consentono di testare le interazioni tra prodotti.

Cloud Firestore

Se si dispone di funzioni cloud che utilizzano Firebase Admin SDK per scrivere su Cloud Firestore, queste scritture verranno inviate all'emulatore Cloud Firestore se è in esecuzione. Se ulteriori funzioni cloud vengono attivate da tali scritture, verranno eseguite nell'emulatore Funzioni cloud.

Hosting Firebase

Se stai utilizzando le funzioni cloud per generare contenuto dinamico per Firebase Hosting , firebase emulators:start utilizza le tue funzioni HTTP locali come proxy per l'hosting.

Registrazione

L'emulatore trasmette i registri dalle funzioni alla finestra del terminale in cui sono in esecuzione. Visualizza tutto l'output da console.log() , console.info() , console.error() e console.warn() all'interno delle funzioni.

Prossimi passi

Per un esempio completo dell'uso della suite di emulatori Firebase, vedere l'esempio di avvio rapido del test .