Avant d'utiliser l'émulateur Extensions avec votre application, assurez-vous de comprendre le workflow Firebase Local Emulator Suite global, d'installer et de configurer Local Emulator Suite, et de consulter ses commandes CLI.
Ce guide suppose également que vous connaissez les Firebase Extensions et que vous savez 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 minimisant les coûts de facturation. L'émulateur exécute les fonctions de votre extension en local, y compris les fonctions déclenchées par des événements en arrière-plan à l'aide des émulateurs pour Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication et Pub/Sub, ainsi que les fonctions déclenchées par Eventarc implémentées dans Cloud Functions v2.
Choisir un projet Firebase
Firebase Local Emulator Suite émule les produits pour un seul projet Firebase.
Pour sélectionner le projet à utiliser, avant de démarrer les émulateurs, exécutez firebase use
dans votre répertoire de travail dans la CLI. Vous pouvez également transmettre l'option --project
à chaque commande d'émulateur.
Local Emulator Suite est compatible avec l'émulation des projets Firebase réels et des projets de démonstration.
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é (très probablement via la console Firebase). Les projets réels disposent de ressources en direct, comme des instances de base de données, des buckets de stockage, des fonctions ou toute autre ressource que vous configurez pour ce projet Firebase. |
Lorsque vous travaillez avec de vrais projets Firebase, vous pouvez exécuter des émulateurs pour tout ou partie des produits compatibles. Pour tous les produits que vous n'émulez pas, vos applications et votre code interagissent avec la ressource live (instance de base de données, bucket de stockage, fonction, etc.). |
Démonstration |
Un projet de démonstration Firebase ne comporte aucune configuration Firebase réelle ni aucune ressource en direct. Ces projets sont généralement accessibles via des ateliers de programmation ou d'autres tutoriels. Les ID de projet de démonstration sont précédés du préfixe |
Lorsque vous utilisez des projets de démonstration Firebase, vos applications et votre code interagissent uniquement avec des émulateurs. Si votre application tente d'interagir avec une ressource pour laquelle aucun émulateur n'est en cours d'exécution, ce code échouera. |
Nous vous recommandons d'utiliser des projets de démonstration dans la mesure du possible. Voici quelques-uns de ses avantages :
- Configuration plus facile, car vous pouvez exécuter les émulateurs sans jamais créer de projet Firebase
- Sécurité renforcée : si votre code appelle accidentellement des ressources non émulées (de production), il n'y a aucun risque de modification des données, d'utilisation et de facturation.
- Meilleure compatibilité hors connexion, car vous n'avez pas besoin d'accéder à Internet pour télécharger la configuration de votre SDK.
Installer et évaluer une extension
Il est facile d'utiliser l'émulateur Extensions pour évaluer si une extension répond à vos besoins.
Supposons que vous soyez intéressé par l'extension Trigger Email (firestore-send-email
), bien que le workflow suivant s'applique à n'importe quelle extension. Lorsqu'il est exécuté avec des émulateurs locaux, Trigger Email utilise automatiquement les émulateurs Cloud Firestore et Cloud Functions.
Pour évaluer une extension en local :
Ajoutez l'extension au fichier manifeste des extensions locales. Un fichier manifeste d'extensions est une liste d'instances d'extension et de 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 l'extension
firebase/firestore-send-email
et à enregistrer la configuration dans le fichier manifeste, mais elle ne déploie pas la configuration dans votre projet. Pour en savoir plus, consultez Gérer la configuration des extensions avec des fichiers manifestes.Démarrez Local Emulator Suite comme d'habitude.
firebase emulators:start
À présent, à l'aide de l'instance d'extension firestore-send-email
listée dans votre fichier manifeste, Local Emulator Suite téléchargera le code source de cette extension dans ~/.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 d'e-mails et configurer d'autres ressources de backend, comme l'exige l'extension Trigger Email.
Vous pouvez également écrire un script de test pour évaluer l'extension dans des environnements de test non interactifs tels que les workflows d'intégration continue. Ce script, entre autres étapes, remplit les données Cloud Firestore nécessaires et déclenche les fonctions. Vous devez ensuite appeler Local Emulator Suite pour exécuter votre 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 qui correspond étroitement à l'expérience de production. Toutefois, il existe quelques différences par rapport au comportement en production.
Cloud IAM
La suite d'émulateurs Firebase ne tente pas de répliquer ni de respecter les comportements liés à IAM pour l'exécution. Les émulateurs respectent les règles de sécurité Firebase fournies. Toutefois, dans les situations où IAM serait normalement utilisé (par exemple, pour définir le compte de service d'appel Cloud Functions et donc les autorisations), l'émulateur n'est pas configurable et utilisera le compte disponible à l'échelle mondiale sur votre machine de développement, comme lors de l'exécution directe d'un script local.
Limitation du type de déclenchement
Actuellement, Firebase Local Emulator Suite n'est compatible qu'avec les fonctions déclenchées par des requêtes HTTP, les déclencheurs d'événements personnalisés Eventarc pour les extensions et les fonctions déclenchées par des événements en arrière-plan 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 ?
- Pour découvrir un ensemble organisé de vidéos et d'exemples détaillés, consultez la playlist de formation sur les émulateurs Firebase.