Avant d'utiliser l'émulateur Extensions avec votre application, assurez-vous de bien comprendre le workflow global Firebase Local Emulator Suite , 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 localement les fonctions de votre extension, 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
Le 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
firebase use dans votre répertoire de travail dans la CLI. Vous pouvez également transmettre
l'indicateur --project à chaque commande d'émulateur.
Local Emulator Suite est compatible avec l'émulation de projets Firebase réels et de projets de démonstration.
| Type de projet | Fonctionnalités | Utilisation avec des émulateurs |
|---|---|---|
| Réel |
Un projet Firebase réel est un projet que vous avez créé et configuré (très probablement via la Firebase console). Les projets réels disposent de ressources en direct, telles que des instances de base de données, des buckets de stockage fonctions ou toute autre ressource que vous avez configurée pour ce projet Firebase |
Lorsque vous travaillez avec des projets Firebase réels, 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 interagiront avec la ressource en direct (instance de base de données, bucket de stockage, fonction, etc.). |
| Démonstration |
Un projet Firebase de démonstration 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 pour les projets de démonstration sont précédés du préfixe |
Lorsque vous travaillez avec des projets Firebase de démonstration, vos applications et votre code interagissent avec des émulateurs uniquement. 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, car si votre code appelle accidentellement des ressources non émulées (production), il n'y a aucun risque de modification des données, d'utilisation et de facturation
- Meilleure prise en charge hors connexion, car il n'est pas nécessaire 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 déterminer si une extension répond à vos besoins.
Supposons que l'extension Trigger Email
(firestore-send-email) ,
vous intéresse, bien que le workflow suivant couvre n'importe quelle extension. Lorsqu'elle est exécutée avec des émulateurs locaux,
l'extension Trigger Email utilise automatiquement les émulateurs Cloud Firestore et
Cloud Functions.
Pour évaluer une extension localement :
Ajoutez l'extension au fichier manifeste des extensions locales. Un fichier manifeste des 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
firebase/firestore-send-emailextension 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 manifestesDémarrez le 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, le Local Emulator Suite télécharge le code source de
cette extension dans ~/.cache/firebase/extensions. Une fois les sources téléchargées, le Local Emulator Suite démarre et vous pouvez
déclencher n'importe quelle fonction déclenchée en arrière-plan de l'extension et connecter votre
application au Local Emulator Suite pour tester son 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 des fonctions. Vous pouvez ensuite appeler le Local Emulator Suite pour exécuter votre script de test :
firebase emulators:exec my-test.shDifférences entre les tests avec l'émulateur Extensions et la production
L'émulateur Extensions vous permet de tester les extensions d'une manière très proche de 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 un comportement lié à IAM pour l'exécution. Les émulateurs respectent les règles de sécurité Firebase fournies, mais 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 utilise 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, la 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 obtenir un ensemble organisé de vidéos et d'exemples pratiques détaillés, suivez la playlist de formation sur les émulateurs Firebase.