| プラットフォームを選択: | iOS+ Android Web Flutter Unity |
このガイドは、スタートガイドに沿って操作しても、Crashlytics ダッシュボードにクラッシュが表示されない場合に参照してください。
強制的にクラッシュさせて実装状況をテストする
強制的にテスト クラッシュを発生させるためのコードをアプリに追加します。
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)を使用して自動エラー キャプチャを構成した場合、このエラーをスローすると、例外が自動的にキャプチャされ、アップロードがスケジュールされます。アプリをビルドして実行し、テストエラーをトリガーして、アプリから Firebase に最初のクラッシュ レポートが送信されるようにします。
Firebase コンソールで、[DevOps & Engagement] > [Crashlytics ダッシュボード] に移動して、テスト クラッシュ レポートを確認します。
ページ上部のプルダウン セレクタからウェブアプリを選択します。
ページを更新すると、数分以内に、テスト例外が [問題] テーブルに表示されます。
コンソールを更新し、5 ~ 10 分経過してもテスト クラッシュが表示されない場合は、次のセクションで設定のトラブルシューティングをご覧ください。
設定に関するトラブルシューティング
テスト クラッシュをトリガーしても、5 ~ 10 分後に Crashlytics ダッシュボードにレポートが表示されない場合は、設定フローを再実行するか、コンソールで次のプロジェクト構成を確認してください。
Crashlytics 設定フローを再実行する: Firebase CLI 設定コマンド(
firebase crashlytics:setup)を安全に再実行するか、スタートガイドのステップ 1 の説明に沿って Firebase コンソールで設定を完了できます。設定を再実行すると、不足している API が自動的に有効になり、firebase-telemetryCloud Logging バケットとルーティング シンクが修復されます。課金と IAM 権限を確認する: Firebase プロジェクトが従量課金制の Blaze のお支払いプランに登録されていること、および設定手順を実行するときにアカウントにプロジェクトのオーナー権限が付与されていることを確認します。
firebasetelemetry.googleapis.comAPI キーの制限を確認する: 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.");
}
次のステップ
読み取り可能なクラッシュ レポートを取得する - ソースマップ(
.js.map)の自動アップロードを設定して、本番環境のスタック トレースに元のファイル名と行番号が表示されるようにします。クラッシュ レポートをカスタマイズする - 処理された例外を報告する方法、カスタムキーを追加する方法、テレメトリー レコードを強制的にフラッシュする方法、サンプリングを構成する方法について説明します。