0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】Firebase Crashlyticsを導入する

Last updated at Posted at 2024-09-03

はじめに

Firebase Crashlyticsをアプリに導入したので、その設定方法について備忘録として記載します。

事前設定

事前設定として以下の作業を行ってください。
・Firebaseプロジェクトの作成
・プロジェクトをFirebaseと紐付け

パッケージのインストール

firebase_crashlyticsをインストールします。

dependencies:
  firebase_crashlytics: ^4.0.4

実装

Crashlytics用のクラスを作成をします。

import 'dart:ui';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:flutter/material.dart';

class CrashlyticsHandler {
  static Future<void> setup() async {
    // Flutter フレームワーク内のエラーを全てキャッチ
    FlutterError.onError = (details) {
      FlutterError.presentError(details);
      FirebaseCrashlytics.instance.recordFlutterFatalError(details);
    };
    // フレームワークで捕捉されなかった非同期エラー
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
  }

  /// ログを出力
  static log(String message) {
    FirebaseCrashlytics.instance.log(message);
  }

  /// アプリを強制的にクラッシュさせる
  static crash(String message) {
    FirebaseCrashlytics.instance.crash();
  }
}

main.dartからCrashlytics用のクラスのsetupを呼び出します。
以上で、Crashlyticsの設定は完了です。

import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'package:test_project/cashlytics_handler/crashlytics_handler.dart';

Future<void> main() async {

  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  
  // Crashlyticsの設定
  await CrashlyticsHandler.setup();
  
  runApp(const MyApp());
}

動作テスト

以下のように、crash()を実行するボタンを設置すると、テストでクラッシュを発生させることができます。

// アプリをクラッシュさせるボタン
ElevatedButton(
    onPressed: () {
        CrashlyticsHandler.log('ログ');
        CrashlyticsHandler.crash();
    },
    child: const Text('クラッシュボタン'),
),

参考

告知

最後にお知らせとなりますが、イーディーエーでは一緒に働くエンジニアを
募集しております。詳しくは採用情報ページをご確認ください。

みなさまからのご応募をお待ちしております。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?