【问题标题】:Disable crashlytics for flutter web app and enable for flutter mobile app为 Flutter Web 应用禁用 crashlytics 并为 Flutter 移动应用启用
【发布时间】:2021-06-12 08:47:29
【问题描述】:

我想禁用 web 的 crashlytics 并在我的 Flutter 应用程序的 android 和 iOS 中保持启用它,因为 web 不支持 firebase crashlytics。谁能告诉我我应该怎么做。没有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 dart crashlytics flutter-web incompatibility


    【解决方案1】:

    如果你导入

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

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

    类似

    if(!kIsWeb) {
      initializeFlutterFire();
    }
    

    【讨论】:

      【解决方案2】:

      kIsWeb 是常量,添加在基础库中,用于告知应用程序是否在 Web 上运行。

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

      【讨论】:

        猜你喜欢
        • 2020-05-12
        • 2019-10-25
        • 2020-10-04
        • 2019-05-01
        • 2020-03-21
        • 2019-10-28
        • 2021-05-26
        • 2021-06-29
        • 2019-06-25
        相关资源
        最近更新 更多