Wyzwalacze alertów Firebase

Firebase zapewnia alerty o różnych zdarzeniach, takich jak zmiany w płatnościach lub alerty Crashlytics dotyczące prędkości. W zależności od alertu i preferencji ustawionych przez członka projektu alert może być widoczny w konsoli Firebase, wysłany e-mailem lub wysłany za pośrednictwem jednej z dostępnych integracji zewnętrznych ( Slack , Jira i PagerDuty ). Każdy z tych alertów i jego preferencje są konfigurowane w konsoli Firebase.

Dodatkowo Firebase zapewnia konfigurowalny programistyczny dostęp do niektórych rodzajów alertów za pośrednictwem Cloud Functions.

Możesz uruchamiać funkcje w odpowiedzi na zdarzenia Firebase Alert emitowane przez te źródła:

  • Crashlytics
  • Dystrybucja aplikacji
  • Płatności Firebase

Na przykład możesz przechwycić alert Crashlytics i wysłać powiadomienia o awariach do Discord. Możesz też przechwycić zdarzenie rozliczeniowe (takie jak zmiana planu rozliczeniowego dla projektu) i uruchomić funkcję, która wysyła powiadomienie do Właściciela projektu.

W typowym cyklu życia funkcja alertu Firebase wykonuje te czynności:

  1. Nasłuchuje/czeka na wyemitowanie określonego typu alertu z Alertów Firebase.
  2. Uruchamia się, gdy alarm jest uruchamiany i odbiera ładunek zdarzenia z określonymi informacjami o zdarzeniu.
  3. Wykonuje zadania zdefiniowane w funkcji.

Zapoznaj się z dokumentacją referencyjną, aby poznać typy alertów i ładunki dotyczące Crashlytics , dystrybucji aplikacji i rozliczeń .

Uruchom funkcję w przypadku zdarzeń alarmowych

Użyj podpakietu firebase-functions/v2/alerts , aby utworzyć funkcję obsługującą zdarzenia Firebase Alerts. Przykłady kodu na tej stronie są oparte na przepływie aplikacji, który używa elementu webhook do publikowania wiadomości w kanale Discord, gdy w aplikacji wystąpi poważny/krytyczny problem.

Przykładowe powiadomienie o awarii w Discord
Przykładowe powiadomienie o awarii

Przykładowa funkcja nasłuchuje zdarzenia onNewFatalIssuePublished , jak pokazano:

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

Następnie funkcja analizuje zwrócony obiekt zdarzenia, tworząc wiadomość do wysłania do kanału 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}\`
`;

Na koniec funkcja wysyła skonstruowaną wiadomość do 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);
    }

W ten sposób możesz wykorzystać Cloud Functions dla Firebase do reagowania na zdarzenia z alertów Firebase za pomocą niestandardowej logiki, która jest najbardziej przydatna dla Twojego zespołu. Oprócz integracji z usługami takimi jak Discord, możesz napisać funkcje wykraczające poza konfigurowane w konsoli integracje z dostawcami, takimi jak Jira, Slack lub PagerDuty. Na przykład możesz dodać niestandardowe pola lub inne funkcje, które nie są jeszcze obsługiwane.