firebase_crashlyticsとは
firebase_crashlytics
は、Flutterアプリケーションで発生した未処理のエラーをFirebaseコンソールに報告するためのパッケージです。
これにより、リアルタイムでクラッシュレポートを取得し、問題の診断と修正が迅速に行えるようになります。
firebase_crashlytics | Flutter package
Flutter plugin for Firebase Crashlytics. It reports uncaught errors to the Firebase console.
使い方
1. パッケージのインストール
まず、pubspec.yaml
ファイルにfirebase_crashlytics
パッケージを追加します。
dependencies:
firebase_crashlytics: ^4.0.1
firebase_core: latest_version
flutter:
sdk: flutter
2. Firebaseの設定
Firebaseコンソールでプロジェクトを作成し、アプリを追加してGoogleサービスの設定ファイル(google-services.json
またはGoogleService-Info.plist
)を取得し、プロジェクトに追加します。
3. 初期化
main.dart
ファイルでFirebaseとCrashlyticsを初期化します。
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/material.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: MyHomePage(),
);
}
}
4. エラーの手動報告
Crashlyticsは自動で未処理のエラーを報告しますが、手動でエラーを報告することも可能です。
try {
// エラーを発生させるコード
} catch (error, stackTrace) {
FirebaseCrashlytics.instance.recordError(error, stackTrace);
}
5. ログの追加
デバッグ情報やカスタムログを追加することができます。
FirebaseCrashlytics.instance.log('デバッグ情報: ボタンが押されました。');
6. カスタムキーの設定
エラー情報にカスタムキーを追加して、クラッシュレポートをより詳細にすることができます。
FirebaseCrashlytics.instance.setCustomKey('custom_key', 'custom_value');
7. ユーザーIDの設定
ユーザーごとにクラッシュレポートを紐付けるために、ユーザーIDを設定することができます。
FirebaseCrashlytics.instance.setUserIdentifier('user_id_12345');
8. デバッグ時の動作
デバッグモードではCrashlyticsの報告が有効にならないように設定することが推奨されます。
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kDebugMode);