Déclencheurs d'alertes Firebase

Firebase fournit des alertes pour un large éventail d'événements, tels que les modifications de facturation ou les alertes de vitesse Crashlytics. En fonction de l'alerte et des préférences définies par le membre du projet, une alerte peut être visible dans la console Firebase, envoyée par e-mail ou envoyée via l'une des intégrations tierces disponibles ( Slack , Jira et PagerDuty ). Chacune de ces alertes et ses préférences sont configurées dans la console Firebase.

De plus, Firebase fournit un accès programmatique personnalisable à certains types d'alertes via Cloud Functions.

Vous pouvez déclencher des fonctions en réponse aux événements d'alerte Firebase émis par ces sources :

  • Crashlytics
  • Distribution d'applications
  • Facturation Firebase

Par exemple, vous pouvez capturer une alerte Crashlytics et envoyer des notifications de plantage à Discord. Vous pouvez également capturer un événement de facturation (comme une modification du plan de facturation du projet) et déclencher une fonction qui envoie une notification au propriétaire du projet.

Dans un cycle de vie typique, une fonction d'alerte Firebase effectue les opérations suivantes :

  1. Écoute/attend qu'un type d'alerte spécifique soit émis à partir des alertes Firebase.
  2. Se déclenche lorsque l'alerte se déclenche et reçoit la charge utile de l'événement avec des informations spécifiques sur l'événement.
  3. Effectue les tâches définies dans la fonction.

Consultez la documentation de référence pour connaître les types d'alertes et les charges utiles pour Crashlytics , App Distribution et Billing .

Déclencher une fonction sur les événements d'alerte

Utilisez le firebase-functions/v2/alerts pour créer une fonction qui gère les événements Firebase Alerts. Les exemples de code de cette page sont basés sur un flux d'application qui utilise un webhook pour publier un message dans un canal Discord lorsqu'un problème grave/fatal se produit dans l'application.

Exemple de notification de plantage dans Discord
Exemple de notification de plantage

L'exemple de fonction écoute l'événement onNewFatalIssuePublished comme indiqué :

exports.postmessagetodiscord = onNewFatalIssuePublished(async (event) => {

La fonction analyse ensuite l'objet événement renvoyé, en créant un message à publier sur le canal Discord :

  // construct a helpful message to send to Discord
  const {id, title, subtitle, appVersion} = event.data.payload.issue;
  const message = `
🚨 New fatal issue in version ${appVersion} 🚨

**${title}**

${subtitle}

id: \`${id}\`
`;

Enfin, la fonction envoie le message construit à Discord :

    const response = await postMessageToDiscord("Crashlytics Bot", message);
    if (response.ok) {
      logger.info(
          `Posted fatal Crashlytics alert ${id} to Discord`,
          event.data.payload,
      );
    } else {
      throw new Error(response.error);
    }

De cette façon, vous pouvez tirer parti de Cloud Functions for Firebase pour répondre aux événements d'alertes Firebase avec une logique personnalisée qui est la plus utile pour votre équipe. En plus de l'intégration avec des services comme Discord, vous pouvez écrire des fonctions pour aller au-delà des intégrations configurées en console avec des fournisseurs tels que Jira, Slack ou PagerDuty. Par exemple, vous pouvez ajouter des champs personnalisés ou d'autres fonctionnalités qui ne sont pas encore prises en charge.