[英]Disable crashlytics for flutter web app and enable for flutter mobile app
I wanted to disable crashlytics for web and keep it enabled in android and iOS on my flutter app since firebase crashlytics is not supported by web. 谁能告诉我我应该怎么做。 没有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();
},
);
}
}
如果你导入
导入'包:flutter/foundation.dart';
有一个名为kIsWeb
的常量可用,您可以使用它来基于平台初始化 crashlytics。
就像是
if(!kIsWeb) {
initializeFlutterFire();
}
kIsWeb
是常量,它添加在基础库中,它告诉应用程序是否在 web 上运行。
import 'package:flutter/foundation.dart';
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(!kIsWeb);
以下代码片段是我如何让 FirebaseCrashlytics 在 iOS 和 Android 上进行初始化,而不是在 Web 上进行初始化。
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);
}
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.