Auslöser für Firebase-Warnungen

Firebase bietet Warnungen für eine Vielzahl von Ereignissen, z. B. Abrechnungsänderungen oder Crashlytics-Geschwindigkeitswarnungen. Abhängig von der Warnung und den vom Projektmitglied festgelegten Einstellungen kann eine Warnung in der Firebase-Konsole angezeigt, per E-Mail gesendet oder über eine der verfügbaren Integrationen von Drittanbietern ( Slack , Jira und PagerDuty ) gesendet werden. Jede dieser Warnungen und ihre Einstellungen werden in der Firebase-Konsole konfiguriert.

Darüber hinaus bietet Firebase über Cloud-Funktionen einen anpassbaren programmgesteuerten Zugriff auf einige Arten von Warnungen.

Sie können Funktionen als Reaktion auf Firebase Alert-Ereignisse auslösen, die von diesen Quellen ausgegeben werden:

  • Crashlytics
  • App-Verteilung
  • Firebase-Abrechnung

Sie könnten beispielsweise eine Crashlytics-Warnung erfassen und Benachrichtigungen über Abstürze an Discord senden. Oder Sie können ein Abrechnungsereignis erfassen (z. B. eine Änderung des Abrechnungsplans für das Projekt) und eine Funktion auslösen, die dem Projektinhaber eine Benachrichtigung sendet.

In einem typischen Lebenszyklus führt eine Firebase-Warnfunktion Folgendes aus:

  1. Lauscht/wartet darauf, dass ein bestimmter Warnungstyp von Firebase Alerts ausgegeben wird.
  2. Wird ausgelöst, wenn die Warnung ausgelöst wird, und empfängt die Ereignisnutzlast mit spezifischen Informationen über das Ereignis.
  3. Führt die in der Funktion definierten Aufgaben aus.

In der Referenzdokumentation finden Sie Warnungstypen und Payloads für Crashlytics , App-Verteilung und Abrechnung .

Lösen Sie eine Funktion bei Alarmereignissen aus

Verwenden Sie das Unterpaket firebase firebase-functions/v2/alerts alerts, um eine Funktion zu erstellen, die Firebase Alerts-Ereignisse verarbeitet. Codebeispiele auf dieser Seite basieren auf einem App-Flow, der einen Webhook verwendet, um eine Nachricht in einem Discord-Kanal zu posten, wenn ein schwerwiegendes/fatales Problem in der App auftritt.

Beispiel für eine Absturzbenachrichtigung in Discord
Beispiel für eine Absturzbenachrichtigung

Die Beispielfunktion lauscht wie gezeigt auf das Ereignis onNewFatalIssuePublished :

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

Die Funktion analysiert dann das zurückgegebene Ereignisobjekt und erstellt eine Nachricht, die an den Discord-Kanal gesendet wird:

  // 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}\`
`;

Schließlich sendet die Funktion die konstruierte Nachricht an 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);
    }

Auf diese Weise können Sie Cloud Functions for Firebase nutzen, um auf Firebase Alerts-Ereignisse mit benutzerdefinierter Logik zu reagieren, die für Ihr Team am nützlichsten ist. Zusätzlich zur Integration mit Diensten wie Discord können Sie Funktionen schreiben, die über konsolenkonfigurierte Integrationen mit Anbietern wie Jira, Slack oder PagerDuty hinausgehen. Sie können beispielsweise benutzerdefinierte Felder oder andere Funktionen hinzufügen, die noch nicht unterstützt werden.