Une extension Firebase effectue une tâche ou un ensemble de tâches spécifique en réponse à des requêtes HTTP ou à des événements en provenance 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. Ces utilisateurs peuvent installer et configurer l'extension pour l'utiliser dans leurs propres projets Firebase.
Structure d'une extension
Une extension se compose de trois composants 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
functions
contient votre code Cloud Functions en JavaScript ou en TypeScript. Il s'agit du code qui exécute les tâches de l'extension en réponse aux événements déclenchés par les services Firebase et 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 ce que fait 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 console Firebase, la CLI Firebase et le hub 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ù 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. Les extensions Firebase et Cloud Functions proposent 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, vous pouvez potentiellement l'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 pouvant déclencher les fonctions Cloud d'une extension.
- Analyse:déclencher des fonctions lorsqu'Analytics enregistre 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ées
- Cloud Storage: déclenche des fonctions lorsque des objets sont importés, archivés ou supprimés de buckets.
- Crashlytics:déclenche des fonctions lorsque Crashlytics déclenche une alerte
- Surveillance des performances:déclenche des fonctions lorsque la surveillance des performances 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 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 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 qu'auteur d'extension, d'écrire des fonctions qui répondent aux événements de "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 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 que la fonction Cloud d'une extension est déclenchée, la plage des intégrations possibles est généralement ouverte. Voici quelques-unes des choses 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.
- Travailler avec n'importe quel service tiers qui fournit une API Web.
- Utilisez vos services personnalisés si vous fournissez une API Web.
- Exécutez la plupart des bibliothèques JavaScript, y compris TensorFlow.js, Express.js,etc.
Créer une extension
Le tutoriel de mise en route vous explique comment créer, tester et publier une extension complète. Il est recommandé de suivre ce tutoriel pour apprendre à créer une extension.
Après avoir parcouru le guide de démarrage, vous pouvez consulter les guides de chaque sujet, 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 extension.yaml