Crashlytics 実装のテスト(ウェブ)

プラットフォームを選択: iOS+ Android Web Flutter Unity


このガイドは、スタートガイドに沿って操作しても、Crashlytics ダッシュボードにクラッシュが表示されない場合に参照してください。

強制的にクラッシュさせて実装状況をテストする

  1. 強制的にテスト クラッシュを発生させるためのコードをアプリに追加します。

    React、Next.js、Angular アプリにテストボタンまたはルートトリガーを追加します。このボタンまたはトリガーをクリックすると、ランタイム エラーがスローされます。

    // Trigger an unhandled exception on button click or route load
    function handleTestCrash() {
      throw new Error("Crashlytics Web SDK Test Unhandled Error!");
    }
    

    <FirebaseCrashlytics>(React または Next.js)、provideCrashlytics(Angular)、<CrashlyticsRoutes>(React Router)を使用して自動エラー キャプチャを構成した場合、このエラーをスローすると、例外が自動的にキャプチャされ、アップロードがスケジュールされます。

  2. アプリをビルドして実行し、テストエラーをトリガーして、アプリから Firebase に最初のクラッシュ レポートが送信されるようにします。

  3. Firebase コンソールで、[DevOps & Engagement] > [Crashlytics ダッシュボード] に移動して、テスト クラッシュ レポートを確認します。

    1. ページ上部のプルダウン セレクタからウェブアプリを選択します。

    2. ページを更新すると、数分以内に、テスト例外が [問題] テーブルに表示されます。

コンソールを更新し、5 ~ 10 分経過してもテスト クラッシュが表示されない場合は、次のセクションで設定のトラブルシューティングをご覧ください。

設定に関するトラブルシューティング

テスト クラッシュをトリガーしても、5 ~ 10 分後に Crashlytics ダッシュボードにレポートが表示されない場合は、設定フローを再実行するか、コンソールで次のプロジェクト構成を確認してください。

  • Crashlytics 設定フローを再実行する: Firebase CLI 設定コマンド(firebase crashlytics:setup)を安全に再実行するか、スタートガイドのステップ 1 の説明に沿って Firebase コンソールで設定を完了できます。設定を再実行すると、不足している API が自動的に有効になり、firebase-telemetry Cloud Logging バケットとルーティング シンクが修復されます。

  • 課金と IAM 権限を確認する: Firebase プロジェクトが従量課金制の Blaze のお支払いプランに登録されていること、および設定手順を実行するときにアカウントにプロジェクトのオーナー権限が付与されていることを確認します。

  • firebasetelemetry.googleapis.com API キーの制限を確認する: Google Cloud コンソールの [認証情報] ページで、firebaseConfig オブジェクト(Browser key (auto created by Firebase) など)で構成された API キーを選択します。キーで API の制限が有効になっている場合は、許可された API のリストに Firebase Telemetry API(firebasetelemetry.googleapis.com)が含まれていることを確認します。制限付き API キーにこのターゲットがない場合、ネットワーク アップロード リクエストは失敗し、ブラウザ コンソールに HTTP 403(Forbidden)エラーが表示されます。

  • 有効になっている Google Cloud API を確認する: Google Cloud コンソールの [有効な API とサービス] ページで、Firebase Telemetry API(firebasetelemetry.googleapis.com)、Firebase Telemetry Admin API(firebasetelemetryadmin.googleapis.com)、Cloud Logging API(logging.googleapis.com)、Cloud Storage(storage.googleapis.com)がプロジェクトで有効になっていることを確認します。

  • ロギング バケットでログ分析を確認する: Google Cloud コンソールの [ログストレージ] ページで、firebase-telemetry バケット(global ロケーション)が存在し、ログ分析が有効になっていることを確認します。[ログルーター] ページで、firebase-telemetry-routing シンクが存在することを確認します。

テスト例外を手動でキャプチャしてフラッシュする

メモリのバッチ処理やページのアンロードを待たずに、エンドツーエンドの送信をすぐに確認する場合は、flush とともに recordError を使用します。

import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script

const crashlytics = getCrashlytics(app);

async function triggerImmediateTestCrash() {
  const error = new Error("Crashlytics Web SDK Test Handled Error!");
  // Capture the error with immediate priority and custom diagnostic metadata
  recordError(crashlytics, error, {
    priority: 'IMMEDIATE',
    testEvent: true,
    environment: 'staging_verification'
  });
  // Force an immediate upload before the browser terminates or reloads
  await flush(crashlytics);
  console.log("Test error flushed to Crashlytics successfully.");
}

次のステップ