Évaluer les extensions à l'aide de l'émulateur d'extensions

Avant d'utiliser l'émulateur Extensions avec votre application, assurez-vous que : vous comprenez le workflow Firebase Local Emulator Suite global, et que vous installez et configurez Local Emulator Suite et examinez ses commandes CLI.

Dans ce guide, nous partons également du principe que vous connaissez Firebase Extensions. et découvrez comment les utiliser dans vos applications Firebase.

Que puis-je faire avec l'émulateur Extensions ?

Avec l'émulateur Extensions, vous pouvez installer et gérer des extensions dans un environnement local sécurisé, et mieux comprendre leurs fonctionnalités tout en réduisant les coûts de facturation. L'émulateur exécute localement les fonctions de l'extension, y compris déclenchées par des événements en arrière-plan à l'aide des émulateurs Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication et Pub/Sub et celles déclenchées par Eventarc, implémentées dans Cloud Functions v2.

Sélectionner un projet Firebase

Firebase Local Emulator Suite émule des produits pour un seul projet Firebase.

Pour sélectionner le projet à utiliser, avant de démarrer les émulateurs, exécutez la CLI dans la CLI firebase use dans votre répertoire de travail. Vous pouvez également transmettre l'option --project à chaque commande de l'émulateur.

Local Emulator Suite accepte l'émulation de projets Firebase réels et demo.

Type de projet Fonctionnalités Utiliser avec des émulateurs
Situation réelle

Un projet Firebase réel est un projet que vous avez créé et configuré via la console Firebase).

Les projets réels ont des ressources actives, telles que des instances de base de données, des espaces de stockage des buckets, des fonctions ou toute autre ressource configurée pour ce projet.

Lorsque vous travaillez sur de vrais projets Firebase, vous pouvez exécuter des émulateurs pour ou tous les produits pris en charge.

Pour les produits que vous n'émulez pas, vos applications et votre code interagir avec la ressource active (instance de base de données, espace de stockage un bucket, une fonction, etc.).

Démo

Un projet Firebase de démonstration n'a pas de configuration Firebase réelle. aucune ressource active. Ces projets sont généralement accessibles via des ateliers de programmation ou d'autres tutoriels.

Les ID des projets de démonstration comportent le préfixe demo-.

Lorsque vous utilisez des projets Firebase de démonstration, vos applications et votre code interagissent avec émulateurs uniquement. Si votre application tente d'interagir avec une ressource pour lequel un émulateur n'est pas en cours d'exécution, le code échouera.

Nous vous recommandons d'utiliser des projets de démonstration autant que possible. Voici quelques-uns de ses avantages :

  • Configuration simplifiée, puisque vous pouvez exécuter les émulateurs sans avoir à créer Projet Firebase
  • Sécurité renforcée, car si votre code appelle accidentellement des applications non émulées (production), il n'y a aucun risque de modification des données, d'utilisation ni de facturation.
  • Meilleure gestion hors connexion, puisqu'il n'est pas nécessaire d'accéder à Internet téléchargez la configuration de votre SDK.

Installer et évaluer une extension

Utiliser l'émulateur Extensions pour déterminer si une extension répond à vos est simple.

Supposons que l'adresse e-mail de déclenchement vous intéresse (firestore-send-email) extension, bien que le workflow suivant couvre toutes les extensions. Lorsqu'il est exécuté avec des émulateurs locaux, le déclencheur d'e-mail utilise automatiquement les émulateurs Cloud Firestore et Cloud Functions.

Pour évaluer une extension en local:

  1. Ajoutez l'extension au fichier manifeste des extensions locales. Un fichier manifeste d'extension est une liste d'instances d'extension et leurs configurations.

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

    L'exécution de la commande ci-dessus vous invite à configurer la dernière version de firebase/firestore-send-email et enregistrer la configuration dans le fichier manifeste, mais il ne déploiera pas la configuration dans votre projet. Pour Pour en savoir plus, consultez Gérer la configuration des extensions à l'aide de fichiers manifestes.

  2. Démarrez Local Emulator Suite comme vous le feriez normalement.

    firebase emulators:start

À présent, en utilisant l'instance d'extension firestore-send-email répertoriée dans votre fichier manifeste, Local Emulator Suite téléchargera le code source de cette extension vers ~/.cache/firebase/extensions. Une fois les sources téléchargées, Local Emulator Suite démarre et vous pouvez déclencher l'une des fonctions déclenchées en arrière-plan de l'extension et connecter votre application à Local Emulator Suite pour tester leur intégration à votre application.

Vous pouvez utiliser Emulator Suite UI pour ajouter des données à la collection de documents envoyés par e-mail et configurer d'autres ressources backend, comme requis par l'extension Trigger Email (Adresse e-mail du déclencheur).

Les environnements de test non interactifs tels que les tests workflows d'intégration, vous pouvez écrire un script de test pour évaluer l'extension qui, entre autres, renseigne les données Cloud Firestore nécessaires et déclenche des fonctions. Vous devez ensuite appeler Local Emulator Suite pour exécuter le script de test:

firebase emulators:exec my-test.sh

Différences entre les tests avec l'émulateur Extensions et la production

L'émulateur Extensions vous permet de tester les extensions d'une manière aussi proche correspond à l'expérience de production. Il existe toutefois quelques différences comportement de production.

Cloud IAM

La suite d'émulateurs Firebase n'essaie pas de répliquer ni de respecter les Comportement lié à IAM pour l'exécution Les émulateurs sont conformes Des règles sont fournies, mais dans des situations où IAM est normalement utilisé, par exemple pour définir les fonctions Cloud qui invoquent le compte de service et, par conséquent, les autorisations, l'émulateur n'est pas configurable et utilisera le compte disponible mondialement votre machine de développement, comme exécuter directement un script local.

Limitation du type de déclenchement

Actuellement, Firebase Local Emulator Suite n'accepte que les requêtes HTTP déclenchées fonctions, déclencheurs d'événements personnalisés Eventarc pour les extensions et arrière-plan déclenchées par des événements pour Cloud Firestore, Realtime Database Cloud Storage for Firebase, Authentication et Pub/Sub. Pour évaluer les extensions qui utilisent d'autres types de fonctions déclenchées, vous devez Installer votre extension dans un projet Firebase de test.

Et maintenant ?