Présentation de l'éditeur d'extensions

Une extension Firebase effectue une tâche spécifique ou un ensemble de tâches en réponse à des requêtes HTTP ou déclenche des événements provenant d'autres produits Firebase et Google, comme 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 Firebase Extensions Hub. 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. Après avoir créé votre extension, vous pouvez la partager avec d'autres. Ces utilisateurs peuvent installer et configurer l'extension pour l'utiliser dans leurs propres projets Firebase.

Structure d'une extension

Vous pouvez considérer une extension 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 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 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 configurer par l'utilisateur.
  • Les fichiers PREINSTALL , POSTINSTALL et CHANGELOG constituent la documentation minimale que votre extension doit avoir. Ces fichiers aident vos utilisateurs à découvrir 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, Firebase CLI et Extensions Hub affichent le contenu de ces fichiers lorsque les utilisateurs explorent, installent et gèrent votre extension.

Après avoir créé votre extension, vous pouvez utiliser la CLI Firebase pour l'installer dans un projet ou la publier sur Extensions Hub, 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 fait son travail à 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és, avec quels produits les fonctions de mon extension peuvent-elles interagir ?

Déclencheurs de fonctions pris en charge

Déclencheurs manuels

Tout d’abord, vous pouvez déclencher manuellement une fonction. Les extensions Firebase et Cloud Functions prennent en charge deux manières 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 depuis votre code client iOS, Android ou Web, à l'aide des SDK client Firebase.

En exposant les points de terminaison HTTP de votre extension, votre extension peut potentiellement s'intégrer à n'importe quel service Web prenant en charge les webhooks. Grâce aux 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 lorsque Analytics enregistre un événement
  • App Distribution : déclencher 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éclenche des fonctions lorsque des pages sont créées, mises à jour ou supprimées
  • Cloud Storage : déclenche des fonctions lorsque des objets sont téléchargés, archivés ou supprimés des buckets
  • Crashlytics : déclencher des fonctions lorsque Crashlytics déclenche une alerte
  • Performance Monitoring : déclencher des fonctions lorsque Performance Monitoring déclenche une alerte
  • Base de données en temps réel : déclenche des fonctions lorsque les données sont créées, mises à jour ou supprimées
  • Remote Config : déclenche des fonctions lorsqu'un paramètre est mis à jour
  • Test Lab : fonctions de déclenchement lorsque Test Lab déclenche une alerte

Déclencheurs du service Google Cloud

Une extension peut également inclure des fonctions qui déclenchent 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 un planning défini
  • Cloud Tasks : une extension peut inclure des fonctions qui peuvent être mises en file d'attente à l'aide de Cloud Tasks. Firebase Extensions utilise 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 : être installée dans un projet pour la première fois, être mise à niveau vers une nouvelle version et être reconfigurée.
  • 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 qui se déclenchent à partir des événements d'une extension .

Pris en charge par 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 points saillants de ce que vous pouvez faire à partir d’une fonction Cloud :

  • Lisez, écrivez et interagissez avec n'importe quel service Firebase ou Google Cloud qui utilise un rôle IAM pris en charge .
  • Travaillez avec n’importe quel service tiers fournissant une API Web.
  • Travaillez avec vos services personnalisés si vous fournissez une API Web.
  • Exécutez la plupart des bibliothèques JavaScript, notamment TensorFlow.js , Express.js, etc.

Comment créer une extension

Le didacticiel Prise en main vous guide tout au long du processus de création, de test et de publication d'une extension complète et constitue la méthode recommandée pour apprendre à en créer une.

Commencer

Après avoir parcouru une fois le guide de démarrage, vous pouvez vous référer aux guides thématiques individuels, qui expliquent chacune des tâches impliquées dans la création de votre propre extension :