禁用flutter web应用程序的crashlytics,并启用flutter移动应用程序



我想禁用crashlytics for web,并在我的flutter应用程序的android和iOS中保持启用状态,因为web不支持firebase Crashlycs。有人能告诉我该怎么做吗?没有Platform.isWeb,所以我很困惑。请帮帮我,让我知道。这是我的main.dart代码供参考。

class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return FutureBuilder(
// Initialize FlutterFire
future: Firebase.initializeApp(),
builder: (context, snapshot) {
// Firebase Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
// Check for errors
if (snapshot.hasError) {
return SomethingWentWrong();
}
// Show Application
if (snapshot.connectionState == ConnectionState.done) {
return StreamProvider<User>.value(
initialData: null,
value: AuthService().user,
child: MaterialApp(
debugShowCheckedModeBanner: false,
home: Wrapper(),
),
);
}
// Initialization
return PouringHourGlassPageLoad();
},
);
}
}

如果导入

导入'package:flutter/foundation.dart';

有一个名为kIsWeb的常量可用,您可以使用它来初始化基于平台的crashlytics。

类似的东西

if(!kIsWeb) {
initializeFlutterFire();
}

下面的代码片段是我如何在iOS&安卓系统,但不在网络上。

void main() async {
await runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();

// If not web, setup Crashlytics
if (!kIsWeb) {
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
}

runApp(const MyApp());

}, (error, stackTrace) {
// If not web, record the errors
if (!kIsWeb) {
FirebaseCrashlytics.instance.recordError(error, stackTrace, fatal: true);
}
});
}

kIsWeb是常量,添加到foundationlib内部,用于告诉应用程序是否在web上运行。

import 'package:flutter/foundation.dart';
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kIsWeb);

相关内容

  • 没有找到相关文章

最新更新