Flutter崩溃报告插件bro_firebase_crashlytics的使用

Bro firebase crashlytics #

目录 #

简介 #

该包将 firebase_crashlytics 包导入到管理器系统 (参见 bro_abstract_manager)。

配置 #

如果你使用 CrashlyticsLoggerManager 类, 你必须在你的应用程序配置管理器中添加 MixinCrashlyticsConfigs

阅读该混入类,查看你需要在配置文件中设置的内容。

示例代码 #

以下是一个完整的示例,演示如何使用 bro_firebase_crashlytics 包。

// 导入必要的包
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_crashlytics/firebase_crashlytics.dart';
import 'package:bro_firebase_crashlytics/bro_firebase_crashlytics.dart';

void main() async {
  // 初始化 Firebase
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  // 初始化 Crashlytics
  FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);

  // 设置未捕获异常处理器
  FlutterError.onError = (errorDetails) {
    FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
  };

  // 设置未捕获错误处理器
  PlatformDispatcher.instance.onError = (error, stackTrace) {
    FirebaseCrashlytics.instance.recordError(error, stackTrace);
    return true;
  };

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Crashlytics Demo'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            // 故意抛出一个异常
            throw Exception('This is a test exception.');
          },
          child: Text('Throw Exception'),
        ),
      ),
    );
  }
}

在这个示例中,我们首先初始化了 Firebase 和 Crashlytics。然后,我们设置了未捕获的错误处理器,以便记录任何未处理的错误或异常。最后,我们在界面上添加了一个按钮,点击该按钮会故意抛出一个异常,从而触发 Crashlytics 记录错误。


更多关于Flutter崩溃报告插件bro_firebase_crashlytics的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter崩溃报告插件bro_firebase_crashlytics的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


bro_firebase_crashlytics 是一个Flutter插件,用于将Firebase Crashlytics集成到Flutter应用中,以便捕获和报告应用崩溃和异常。使用这个插件,你可以更好地监控应用的稳定性,并及时修复问题。

以下是使用 bro_firebase_crashlytics 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 bro_firebase_crashlytics 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  bro_firebase_crashlytics: ^latest_version

然后运行 flutter pub get 来安装依赖。

2. 配置 Firebase

如果你还没有配置 Firebase,请按照以下步骤进行配置:

  1. 创建 Firebase 项目:在 Firebase 控制台 中创建一个新项目。
  2. 添加 Android 应用:在 Firebase 控制台中,点击“添加应用”,选择 Android,然后按照提示填写包名等信息。下载 google-services.json 文件并放到 android/app 目录下。
  3. 添加 iOS 应用:在 Firebase 控制台中,点击“添加应用”,选择 iOS,然后按照提示填写包名等信息。下载 GoogleService-Info.plist 文件并放到 ios/Runner 目录下。

3. 初始化 Firebase Crashlytics

在你的 Flutter 应用中初始化 Firebase 和 Crashlytics。

import 'package:bro_firebase_crashlytics/bro_firebase_crashlytics.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  BroFirebaseCrashlytics.instance.initialize();

  runApp(MyApp());
}

4. 捕获未处理的异常

为了捕获未处理的异常,你可以使用 BroFirebaseCrashlytics 提供的 runZonedGuarded 方法。

import 'package:flutter/material.dart';
import 'package:bro_firebase_crashlytics/bro_firebase_crashlytics.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  BroFirebaseCrashlytics.instance.initialize();

  runZonedGuarded(() {
    runApp(MyApp());
  }, (error, stackTrace) {
    BroFirebaseCrashlytics.instance.recordError(error, stackTrace);
  });
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

5. 记录自定义错误

你可以在代码中使用 BroFirebaseCrashlytics 记录自定义错误。

try {
  // Some code that might throw an exception
} catch (e, stackTrace) {
  BroFirebaseCrashlytics.instance.recordError(e, stackTrace);
}

6. 设置用户标识

你可以为 Crashlytics 设置用户标识,以便更好地跟踪用户的问题。

BroFirebaseCrashlytics.instance.setUserIdentifier("user_id_123");

7. 设置自定义键值对

你还可以设置自定义键值对,以便在 Crashlytics 报告中添加额外的上下文信息。

BroFirebaseCrashlytics.instance.setCustomKey("key", "value");

8. 调试和测试

你可以在开发过程中手动触发一个崩溃来测试 Crashlytics 是否正常工作。

BroFirebaseCrashlytics.instance.crash();
回到顶部