Flutter Firebase设置&缺少google_app_id,Firebase Analytics已禁用

tjvv9vkg  于 2023-10-22  发布在  Flutter
关注(0)|答案(1)|浏览(203)

我使用flutter create test9_firebase_setup -a kotlin --platforms android命令创建了一个新的Flutter应用程序。我们的目标是连接到firebase与auth,分析和crashlytics工作。
在我的pubspec.yaml中,我添加了:

dependencies:
  # ...
  firebase_core: ^2.17.0
  firebase_analytics: ^10.5.1
  firebase_crashlytics: ^3.3.7
  firebase_auth: ^4.10.1

我的main()函数看起来像这样。初始化firebase后,我们匿名登录,只是为了检查它是否工作。身份验证的结果将打印在控制台中。然后我们启动Crashlytics并在分析中记录一个条目。这些片段是直接从医生那里来的,所以应该有用。

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );

  final user = await FirebaseAuth.instance.signInAnonymously();
  print(
    user.user?.isAnonymous == true ? 'You are signed in' : 'Can\'t sign in',
  );

  FlutterError.onError = (errorDetails) {
    FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
  };

  PlatformDispatcher.instance.onError = (error, stack) {
    FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
    return true;
  };

  await FirebaseAnalytics.instance.logBeginCheckout(
    value: 10.0,
    currency: 'USD',
    items: [
      AnalyticsEventItem(
        itemName: 'Socks',
        itemId: 'xjw73ndnw',
        price: 10.0,
      ),
    ],
    coupon: '10PERCENTOFF',
  );

  runApp(const MyApp());
}

我在我的firebase控制台中启用了身份验证,Crashlytics和分析。然后运行flutterfire configure。这就产生了firebase_options.dartgoogle-services.json
我想指出的是,在控制台中配置android应用时,我跳过了firebase给出的SDK指令,因为(根据我遵循的一些第三方教程的理解)这些步骤应该由flutterfire configure自动完成。因此,我没有做任何手动修改build.gradle在这一点上。
当我运行我的应用程序时,我可以在控制台中看到You are signed in行。实际上,我可以在Web上的控制台中看到一个新的匿名用户。这意味着与Firebase的连接可以正常工作。
我在网上看到了一些教程和文章,人们正在运行flutterfire configure,一切都在工作。但显然对我来说不是,因为我在控制台中得到了Missing google_app_id. Firebase Analytics disabled错误。
我尝试在UI中触发异常,但Crashlytics Jmeter 板没有显示任何内容。
然后我手动更新了我的build.gradle文件。我在应用程序级别的build.gradle文件中添加了以下行:

dependencies {
    implementation(platform("com.google.firebase:firebase-bom:32.3.1"))
    implementation("com.google.firebase:firebase-analytics-ktx")
    implementation("com.google.firebase:firebase-auth-ktx")
}

现在,crashlytics似乎工作正常,但我仍然得到Missing google_app_id. Firebase Analytics disabled.错误。事实上,我在firebase控制台上的“实时分析”和“分析 Jmeter 板”页面没有显示任何活动。
在项目设置过程中,我回到了Firebase提供的SDK Instructions,并尝试手动完成它们。我的项目是用Kotlin设置的,他们告诉我找一个build.gradle.kts文件。但我只有build.gradle文件。无论如何,我试过了:

  • 在我的根级别buildgradle文件中没有任何plugins {},所以我尝试添加它,但随后我得到错误Plugin [id: 'com.google.gms.google-services', version: '4.4.0', apply: false] was not found in any of the following sources: [...]
  • 如果我在我的应用程序级build.gradle文件中添加下面的行,也会得到同样的错误。dependencies部分已经填写(如上所述)并正在工作。
plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
    // Add this:
    id "com.google.gms.google-services"
}

所以,三个问题:

  • 为什么我有build.gradle文件而不是build.gradle.kts文件,即使我的flutter项目是用Kotlin设置的?
  • flutterfire configure不应该自动更新build.gradle并添加所需的依赖项吗?
  • 有人能推荐启用Google Analytics的步骤吗?

谢谢你,谢谢

ar5n3qh5

ar5n3qh51#

我也面临着同样的问题。
这个答案帮助了我:https://stackoverflow.com/a/77168724
我只需要升级Gradle依赖项
出发地:classpath 'com.android.tools.build:gradle:7.3.1'
至:classpath 'com.android.tools.build:gradle:7.4.2'

相关问题