Une extension Firebase exécute une tâche ou un ensemble de tâches spécifiques en réponse à des requêtes HTTP ou à des événements déclenchés par 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 elle peut faciliter l'accès à l'une des API de votre entreprise. Une fois votre extension créée, vous pouvez la partager avec autres. Ces utilisateurs peuvent installer et configurer l'extension pour qu'ils les utilisent eux-mêmes projets Firebase.
Structure d'une extension
Une extension peut être considérée comme ayant trois composants principaux:
- Code Cloud Functions, en JavaScript ou TypeScript
- Métadonnées qui décrivent votre extension
- Documentation pour aider vos utilisateurs à configurer et à utiliser votre extension
Pour développer une extension, vous assemblez ces composants comme suit : structure:
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
functions
contient 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 Firebase et les services Google. - Le fichier
extension.yaml
contient 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 pouvoir configurer par l'utilisateur. - Les fichiers
PREINSTALL
,POSTINSTALL
etCHANGELOG
constituent la documentation minimale dont votre extension doit disposer. Ces fichiers aident vos utilisateurs à savoir à quoi sert votre extension, comment l'utiliser et quelles mises à jour vous avez effectuées. Vous devez également fournir une icône pour aider les utilisateurs à reconnaître votre extension. La La console Firebase, la CLI Firebase et Extensions Hub 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ù n'importe qui 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 aborder 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. Extensions Firebase et cloud Il existe deux façons de déclencher manuellement des fonctions:
- Déclencheurs HTTP : déployer 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 client 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 du service Firebase
La plupart des produits Firebase émettent des événements pouvant déclencher les fonctions Cloud d'une extension.
- Analytics : déclencher des fonctions lorsqu'Analytics consigne un événement
- App Distribution : déclenche des fonctions lorsque App Distribution déclenche une alerte.
- Authentification : déclenche des fonctions lorsque les utilisateurs créent et suppriment des comptes.
- Cloud Firestore:déclencher des fonctions lorsque des pages sont créées, mises à jour ou supprimé
- Cloud Storage: déclencher des fonctions lorsque des objets sont importés, archivés ou supprimé des buckets
- Crashlytics:déclenche des fonctions lorsque Crashlytics déclenche une alerte
- Performance Monitoring:déclenche des fonctions lorsque Performance Monitoring déclenche une alerte
- Realtime Database : déclenche des fonctions lorsque des données sont créées, mises à jour ou supprimées.
- Remote Config : déclencher des fonctions lorsqu'un paramètre est mis à jour
- Test Lab:déclencher des fonctions lorsque Test Lab déclenche une alerte
Déclencheurs de service Google Cloud
Une extension peut également inclure des fonctions qui déclenchent plusieurs services Google Cloud autres que Firebase :
- Cloud Pub/Sub: une extension peut inclure des fonctions qui se déclenchent quand les événements sont publiés dans un sujet Pub/Sub configurable.
- Cloud Scheduler : une extension peut inclure des fonctions exécutées selon un calendrier défini.
- Cloud Tasks : une extension peut inclure des fonctions pouvant être mises en file d'attente à l'aide de Cloud Tasks. Les extensions Firebase utilisent cette fonctionnalité pour vous permettre, en tant que auteur d'extension, écrire des fonctions qui répondent au "cycle de vie" d'une extension les événements: lorsqu'il est installé dans un projet pour la première fois, qu'il est mis à niveau vers nouvelle version, et en cours de reconfiguration.
- Eventarc : une extension peut inclure des fonctions qui se déclenchent lorsque des événements sont publiés sur un canal Eventarc configurable. À l'inverse, une extension peut publier ses propres événements sur un canal Eventarc afin de permettre aux utilisateurs de définir leurs propres fonctions déclenchées à partir des événements d'une extension.
Compatible avec les fonctions
Une fois la fonction Cloud d'une extension déclenchée, la gamme d'intégrations possibles est généralement illimitée. Voici quelques exemples de ce que vous pouvez à partir d'une fonction Cloud:
- Lisez, écrivez et interagissez avec des ressources Firebase ou Google Cloud qui utilise un rôle IAM compatible.
- Travailler avec n'importe quel service tiers qui fournit une API Web.
- Utilisez vos services personnalisés si vous fournissez une API Web.
- Vous pouvez exécuter la plupart des bibliothèques JavaScript, y compris TensorFlow.js, Express.js et ainsi de suite.
Comment créer une extension
Le tutoriel Premiers pas vous guide tout au long le processus de création, de test et de publication d'une extension complète, la méthode recommandée pour apprendre à en créer un.
Après avoir parcouru 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 de cycle de vie des extensions
- Ajouter des hooks utilisateur à une extension
- Créer une documentation utilisateur pour votre extension
- Publier une extension sur Extensions Hub
- Documentation de référence complète sur le fichier extension.yaml