Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Exécuter les fonctions localement

La CLI Firebase comprend un émulateur Cloud Functions qui peut émuler les types de fonctions suivants:

  • Fonctions HTTPS
  • Fonctions appelables
  • Fonctions Cloud Firestore

Vous pouvez exécuter des fonctions localement pour les tester avant de les déployer en production.

Installez la CLI Firebase

Pour utiliser l'émulateur Cloud Functions, installez d'abord la CLI Firebase:

npm install -g firebase-tools

Pour utiliser l'émulateur local, vos Cloud Functions doivent dépendre de:

  • firebase-admin version 8.0.0 ou supérieure.
  • firebase-functions version 3.0.0 ou supérieure.

Configurer les informations d'identification d'administrateur (facultatif)

Si vous souhaitez que vos tests de fonctions interagissent avec les API Google ou d'autres API Firebase via le SDK d'administration Firebase , vous devrez peut-être configurer des informations d'identification d'administrateur.

  • Les déclencheurs Cloud Firestore et Realtime Database disposent déjà d'informations d'identification suffisantes et ne nécessitent pas de configuration supplémentaire.
  • Toutes les autres API, y compris les API Firebase telles que l'authentification et FCM ou les API Google telles que Cloud Translation ou Cloud Speech, nécessitent les étapes de configuration décrites dans cette section. Cela s'applique que vous utilisiez les fonctions shell ou les firebase emulators:start .

Pour configurer les informations d'identification d'administrateur pour les fonctions émulées:

  1. Ouvrez le volet Comptes de service de la Google Cloud Console.
  2. Assurez-vous que le compte de service par défaut App Engine est sélectionné et utilisez le menu d'options à droite pour sélectionner Créer une clé .
  3. Lorsque vous y êtes invité, sélectionnez JSON pour le type de clé, puis cliquez sur Créer .
  4. Définissez vos informations d'identification par défaut Google pour qu'elles pointent vers la clé téléchargée:

    Unix

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

    les fenêtres

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

Une fois ces étapes terminées, vos tests de fonctions peuvent accéder aux API Firebase et Google à l'aide du SDK Admin . Par exemple, lors du test d'un déclencheur d'authentification, la fonction émulée peut appeler admin.auth().getUserByEmail(email) .

Configurer la configuration des fonctions (facultatif)

Si vous utilisez des variables de configuration de fonctions personnalisées, exécutez d'abord la commande pour obtenir votre configuration personnalisée (exécutez-la dans le répertoire des functions ) dans votre environnement local:

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

Exécutez la suite d'émulateurs

Pour exécuter l'émulateur Cloud Functions, utilisez la commande emulators:start :

firebase emulators:start

La commande emulators:start lancera des émulateurs pour Cloud Functions, Cloud Firestore, Realtime Database et Firebase Hosting en fonction des produits que vous avez initialisés dans votre projet local à l'aide de firebase init . Si vous souhaitez démarrer un émulateur particulier, utilisez l'indicateur --only :

firebase emulators:start --only functions

Si vous souhaitez exécuter une suite de tests ou un script de test après le démarrage des emulators:exec , utilisez la commande emulators:exec :

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

Interactions avec d'autres services

La suite d'émulateurs comprend plusieurs émulateurs, qui permettent de tester les interactions entre produits.

Cloud Firestore

Si vous disposez de Cloud Functions qui utilisent le SDK Firebase Admin pour écrire dans Cloud Firestore, ces écritures seront envoyées à l'émulateur Cloud Firestore s'il est en cours d'exécution. Si d'autres fonctions Cloud Functions sont déclenchées par ces écritures, elles seront exécutées dans l'émulateur Cloud Functions.

Hébergement Firebase

Si vous utilisez Cloud Functions pour générer du contenu dynamique pour Firebase Hosting , les firebase emulators:start utilisent vos fonctions HTTP locales comme proxys pour l'hébergement.

Enregistrement

L'émulateur transmet les journaux de vos fonctions à la fenêtre du terminal où elles s'exécutent. Il affiche toutes les sorties des console.log() , console.info() , console.error() et console.warn() dans vos fonctions.

Prochaines étapes

Pour un exemple complet d'utilisation de la suite d'émulateurs Firebase, consultez l'exemple de test de démarrage rapide .