Une extension Firebase effectue une tâche ou un ensemble de tâches spécifiques en réponse à des requêtes HTTP ou à des événements déclencheurs provenant d'autres produits Firebase et Google, tels que Firebase Cloud Messaging, Cloud Firestore ou Pub/Sub.
Vous pouvez créer votre propre extension pour un usage personnel ou pour la partager avec le monde entier dans le Hub des extensions Firebase. Par exemple, votre extension peut effectuer une tâche spécifique dont votre application a régulièrement besoin ou faciliter l'accès à l'une des API de votre entreprise. Une fois votre extension créée, vous pouvez la partager avec d'autres utilisateurs. Ils pourront l'installer et la configurer pour l'utiliser dans leurs propres projets Firebase.
Structure d'une extension
Une extension peut être considérée comme composée de trois éléments principaux :
- Code Cloud Functions, en JavaScript ou TypeScript
- Métadonnées décrivant votre extension
- Documentation pour aider vos utilisateurs à configurer et à utiliser votre extension
Pour développer une extension, vous assemblez ces composants dans la structure suivante :
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- Le répertoire
functionscontient votre code Cloud Functions en JavaScript ou TypeScript. Il s'agit du code qui effectue les tâches de l'extension en réponse aux événements déclenchés par les services Firebase et Google. - Le fichier
extension.yamlcontient des métadonnées sur votre extension, telles que ses déclencheurs et ses rôles d'accès IAM, ainsi que tous les paramètres que vous souhaitez que l'utilisateur puisse configurer. - Les fichiers
PREINSTALL,POSTINSTALLetCHANGELOGconstituent la documentation minimale que votre extension doit comporter. Ces fichiers aident vos utilisateurs à comprendre ce que fait votre extension, comment l'utiliser et quelles mises à jour vous avez apportées. Vous devez également fournir une icône pour aider les utilisateurs à reconnaître votre extension. La console Firebase, la CLI Firebase et le Hub des extensions affichent le contenu de ces fichiers lorsque les utilisateurs explorent, installent et gèrent votre extension.
Une fois votre extension créée, vous pouvez utiliser la CLI Firebase pour l'installer dans un projet ou la publier dans le Hub des extensions, où tout le monde peut la découvrir et l'installer dans ses projets.
Avec quels produits mon extension peut-elle interagir ?
Étant donné qu'une extension Firebase fonctionne à l'aide de Cloud Functions, vous pouvez envisager la question des intégrations possibles de deux manières : Quels produits peuvent déclencher les fonctions de mon extension ? et Une fois déclenchées, avec quels produits les fonctions de mon extension peuvent-elles interagir ?
Déclencheurs de fonction compatibles
Déclencheurs manuels
Tout d'abord, vous pouvez déclencher manuellement une fonction. Les extensions Firebase et Cloud Functions prennent en charge deux façons de déclencher manuellement des fonctions :
- Déclencheurs HTTP : déployez une fonction sur un point de terminaison HTTP.
- Fonctions appelables : appelez vos fonctions Cloud directement à partir de votre code client iOS, Android ou Web, à l'aide des SDK clients Firebase.
En exposant des points de terminaison HTTP à partir de votre extension, celle-ci peut potentiellement s'intégrer à n'importe quel service Web compatible avec les webhooks. Avec les fonctions appelables, les utilisateurs qui installent votre extension peuvent utiliser les SDK Firebase comme bibliothèque cliente pour accéder à l'API implémentée par votre extension.
Déclencheurs de service Firebase
La plupart des produits Firebase émettent des événements qui peuvent déclencher les fonctions Cloud d'une extension.
- Analytics : déclenchez des fonctions lorsque Analytics enregistre un événement.
- App Distribution : déclenchez des fonctions lorsque App Distribution déclenche une alerte.
- Authentication : déclenchez des fonctions lorsque les utilisateurs créent et suppriment des comptes.
- Cloud Firestore : déclenchez des fonctions lorsque des pages sont créées, mises à jour ou supprimées.
- Cloud Storage : déclenchez des fonctions lorsque des objets sont importés, archivés ou supprimés de buckets.
- Crashlytics : déclenchez des fonctions lorsque Crashlytics déclenche une alerte.
- Performance Monitoring : déclenchez des fonctions lorsque Performance Monitoring déclenche une alerte.
- Realtime Database : déclenchez des fonctions lorsque des données sont créées, mises à jour ou supprimées.
- Remote Config : déclenchez des fonctions lorsqu'un paramètre est mis à jour.
- Test Lab : déclenchez des fonctions lorsque Test Lab déclenche une alerte.
Déclencheurs de service Google Cloud
Une extension peut également inclure des fonctions qui se déclenchent à partir de plusieurs services Google Cloud non Firebase :
- Cloud Pub/Sub : une extension peut inclure des fonctions qui se déclenchent lorsque des événements sont publiés dans un sujet Pub/Sub configurable.
- Cloud Scheduler : une extension peut inclure des fonctions qui s'exécutent selon une planification définie .
- Cloud Tasks : une extension peut inclure des fonctions qui peuvent être mises en file d'attente à l'aide de Cloud Tasks. Les extensions Firebase utilisent cette fonctionnalité pour vous permettre, en tant qu'auteur d'extension, d'écrire des fonctions qui répondent aux événements du "cycle de vie" d'une extension : installation dans un projet pour la première fois, mise à niveau vers une nouvelle version et reconfiguration.
- Eventarc : une extension peut inclure des fonctions qui se déclenchent lorsque des événements sont publiés dans un canal Eventarc configurable. Inversement, une extension peut publier ses propres événements dans un canal Eventarc afin de permettre aux utilisateurs de définir leurs propres fonctions qui se déclenchent à partir des événements d'une extension.
Fonctions compatibles
Une fois la fonction Cloud d'une extension déclenchée, l'éventail des intégrations possibles est généralement illimité. Voici quelques exemples de ce que vous pouvez faire à partir d'une fonction Cloud :
- Lire, écrire et interagir avec n'importe quel service Firebase ou Google Cloud qui utilise un rôle IAM compatible.
- Utiliser n'importe quel service tiers qui fournit une API Web.
- Utiliser vos services personnalisés si vous fournissez une API Web.
- Exécuter la plupart des bibliothèques JavaScript, y compris TensorFlow.js, Express.js, etc.
Créer une extension
Le tutoriel Premiers pas vous guide tout au long du processus de création, de test et de publication d'une extension complète. Il s'agit de la méthode recommandée pour apprendre à en créer une.
Une fois que vous avez suivi le guide de démarrage, vous pouvez consulter les guides thématiques individuels, qui expliquent chacune des tâches impliquées dans la création de votre propre extension :
- Écrire des fonctions pour une extension
- Utiliser des paramètres dans une extension
- Configurer l'accès approprié pour une extension
- Répondre aux événements du cycle de vie d'une extension
- Ajouter des hooks utilisateur à une extension
- Créer une documentation utilisateur pour votre extension
- Publier une extension sur le Hub des extensions
- Documentation de référence complète sur extension.yaml