initialize method

  1. @override
Future<void> initialize(
  1. BuildContext context, {
  2. IFastErrorReporter? errorReporter,
})
override

Implementation

@override
Future<void> initialize(
  BuildContext context, {
  IFastErrorReporter? errorReporter,
}) async {
  if (isWeb) return;

  _logger.debug('Initializing...');

  final crashlytics = FirebaseCrashlytics.instance;

  if (kDebugMode) {
    crashlytics.setCrashlyticsCollectionEnabled(shouldEnableInDevMode);
  } else {
    crashlytics.setCrashlyticsCollectionEnabled(true);
  }

  FlutterError.onError = crashlytics.recordFlutterError;

  Isolate.current.addErrorListener(RawReceivePort((List<dynamic> pair) async {
    final List<dynamic> errorAndStacktrace = pair;

    await crashlytics.recordError(
      errorAndStacktrace.first,
      errorAndStacktrace.last is StackTrace?
          ? errorAndStacktrace.last as StackTrace?
          : null,
    );
  }).sendPort);

  _logger.debug('Initialized');
}