2022 年 10 月 18 日に開催される Firebase Summit に、直接会場で、またはオンラインでご参加ください。Firebase を使用してアプリ開発を加速させ、自信を持ってアプリをリリースし、簡単にスケールする方法をご紹介します。 今すぐ登録

FirebaseAlertsトリガー

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase は、請求の変更や Crashlytics のベロシティ アラートなど、幅広いイベントのアラートを提供します。アラートとプロジェクト メンバーが設定した設定に応じて、アラートは Firebase コンソールで表示したり、メールで送信したり、利用可能なサードパーティ統合 ( SlackJira 、およびPagerDuty ) のいずれかを介して送信したりできます。これらの各アラートとその設定は、Firebase コンソールで構成されます。

さらに、Firebase は、Cloud Functions を介して、いくつかの種類のアラートへのカスタマイズ可能なプログラムによるアクセスを提供します。

これらのソースによって発行された Firebase Alert イベントに応答して、関数をトリガーできます。

  • クラッシュリティクス
  • アプリの配布
  • Firebase の請求

たとえば、Crashlytics アラートをキャプチャして、クラッシュの通知を Discord に送信できます。または、請求イベント (プロジェクトの請求計画の変更など) をキャプチャし、プロジェクト オーナーに通知を送信する関数をトリガーすることもできます。

一般的なライフサイクルでは、Firebase Alert 関数は次のことを行います。

  1. 特定のアラート タイプが Firebase Alerts から発行されるのをリッスン/待機します。
  2. アラートが発生したときにトリガーされ、イベントに関する特定の情報を含むイベント ペイロードを受け取ります。
  3. 関数で定義されたタスクを実行します。

CrashlyticsApp Distribution 、およびBillingのアラート タイプとペイロードについては、リファレンス ドキュメントを参照してください。

アラート イベントで関数をトリガーする

firebase-functions/v2/alertsサブパッケージを使用して、Firebase Alerts イベントを処理する関数を作成します。このページのコード サンプルは、アプリで重大/致命的な問題が発生したときに Webhook を使用して Discord チャネルにメッセージを投稿するアプリ フローに基づいています。

Discord でのクラッシュ通知の例
クラッシュ通知の例

サンプル関数は、次のようにonNewFatalIssuePublishedイベントをリッスンします。

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

次に、関数は返されたイベント オブジェクトを解析し、メッセージを作成して Discord チャネルに投稿します。

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

**${title}**

${subtitle}

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

最後に、関数は構築されたメッセージを Discord に送信します。

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

このように、Cloud Functions for Firebase を活用して、チームにとって最も役立つカスタム ロジックで Firebase Alerts イベントに応答できます。 Discord などのサービスとの統合に加えて、Jira、Slack、PagerDuty などのプロバイダーとのコンソール構成の統合を超える機能を作成できます。たとえば、カスタム フィールドや、まだサポートされていないその他の機能を追加できます。