Cloud Functions で Firebase Crashlytics を拡張する

新しい問題、リグレッションの問題、ベロシティ アラートなど、Crashlytics の問題イベントに応じて関数をトリガーできます。ここでは、問題イベントへの対処法をいくつか示します。

その他の使用例については、Cloud Functions で可能な処理をご覧ください。

Crashlytics 関数をトリガーする

Crashlytics 関数をトリガーするには、まず functions.crashlytics.issue() を使用して IssueBuilder を生成し、次にビルダーの適切な問題生成関数を呼び出します。

関数説明
onNew()

アプリで初めて問題が発生した場合に、新しい問題イベントをトリガーします。


exports.sendOnNewIssue = functions.crashlytics.issue().onNew(async (issue) => {
  // ...
});
onRegressed()

問題が Crashlytics で終了された後に再び発生した場合に、リグレッションの問題イベントをトリガーします。例:


exports.sendOnRegressedIssue = functions.crashlytics.issue().onRegressed(async (issue) => {
  // ...
});
onVelocityAlert()

特定のビルドで統計的に有意な数のセッションがクラッシュした場合に、ベロシティ アラート イベントをトリガーします。例:


exports.sendOnVelocityAlert = functions.crashlytics.issue().onVelocityAlert(async (issue) => {
  // ...
});

イベント属性へのアクセス

IssueBuilder で作成された各イベント トリガーは、問題の名前、ID、関連するアプリの情報などが含まれるプロパティを持つ Issue を返します。

たとえば、アプリで新しい問題が発生した場合に、問題の ID とタイトルを付けて Slack にメッセージを送信できます。

exports.postOnNewIssue = functions.crashlytics.issue().onNew(async (issue) => {
  const issueId = issue.issueId;
  const issueTitle = issue.issueTitle;
  const appName = issue.appInfo.appName;
  const appPlatform = issue.appInfo.appPlatform;
  const latestAppVersion = issue.appInfo.latestAppVersion;

  const slackMessage = `<!here|here> There is a new issue - ${issueTitle} (${issueId}) ` +
      `in ${appName}, version ${latestAppVersion} on ${appPlatform}`;

  await notifySlack(slackMessage);
  console.log(`Posted new issue ${issueId} successfully to Slack`);
});

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。