firebase Crashlytics和运行分区保护

jobtbby3  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(101)

我无法理解runZonedGuarded用法的crashlytics文档
我到底需要不需要?
https://firebase.flutter.dev/docs/crashlytics/usage/#zoned-errors

qnakjoqk

qnakjoqk1#

2023年6月答案

不,Crashlytics不再需要runZonedGuarded了。
不建议使用runZonedGuarded用于Crashlytics。你可以看到,在这个提交中,所有对runZonedGuarded的引用都被替换了:
https://github.com/firebase/flutterfire/commit/8a0caa05d5abf6fef5bf0e654654dcd0b6ec874a
还要注意的是,当前的官方文档中不再提到runZonedGuardedhttps://firebase.google.com/docs/crashlytics/customize-crash-reports?platform=flutter
推荐的方法是:

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

好好享受吧!

3npbholx

3npbholx2#

因为不是所有的错误都能被Flutter框架捕获。例如,在按钮的onPressed处理程序中发生异常:

ElevatedButton(
  onPressed: () {
    throw Error();
  }
  ...
)

要捕获此类错误,我们可以使用runZonedGuarded
更多信息:

  1. Handling errors in Flutter
    1.自定义Firebase Crashlytics崩溃报告-分区错误

相关问题