Présentation de l'éditeur d'extensions

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, 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 hub d'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 é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 devez assembler 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 rendre configurables par l'utilisateur.
  • Les fichiers PREINSTALL, POSTINSTALL et CHANGELOG constituent la documentation minimale requise pour votre extension. 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 d'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 d'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 permettent de déclencher manuellement des fonctions de deux manières :

  • Déclencheurs HTTP : déployer une fonction sur un point de terminaison HTTP
  • Fonctions appelables : appelez vos fonctions Cloud Functions directement à partir de votre code client iOS, Android ou Web, à l'aide des SDK client Firebase.

En exposant les points de terminaison HTTP de votre extension, celle-ci peut potentiellement s'intégrer à n'importe quel service Web compatible avec 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 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 lorsqu'Analytics enregistre un événement.
  • App Distribution : déclencher des fonctions lorsqu'App Distribution déclenche une alerte
  • Authentification : 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.
  • Surveillance des performances : déclenchez des fonctions lorsque la surveillance des performances 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é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 services 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 programmation définie.
  • 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 du "cycle de vie" d'une extension : l'installation dans un projet pour la première fois, la mise à niveau vers une nouvelle version et la reconfiguration.
  • Eventarc : une extension peut inclure des fonctions qui se déclenchent lorsque des événements sont publiés sur un canal Eventarc configurable. Inversement, 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.

Fonctions "Supported from"

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 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.
  • Utilisez n'importe quel service tiers qui fournit une API Web.
  • Utilisez 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.

Commencer

Une fois que vous avez 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 :