Flutter Firebase 设置和缺少 google_app_id。 Firebase 分析已禁用

问题描述 投票:0回答:2

我使用命令

Flutter
创建了一个新的
flutter create test9_firebase_setup -a kotlin --platforms android
应用程序。目标是连接到 Firebase,并进行身份验证、分析和崩溃处理。

在我的

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 并在 Analytics 中记录一个条目。这些片段直接来自文档,所以它们应该可以工作。

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 和 Analytics。然后我就跑了

flutterfire configure
。这就创建了
firebase_options.dart
google-services.json

我想指出的是,在控制台中配置android应用程序期间,我跳过了firebase给出的SDK指令,因为(正如我从我遵循的一些第三方教程中了解到的)这些步骤应该由

自动完成flutterfire configure
。因此我此时没有对
build.gradle
进行任何手动修改。

当我运行我的应用程序时,我可以在控制台中看到

You are signed in
行。事实上,我可以在网络上的控制台中看到一个新的匿名用户。这意味着与 Firebase 的连接有效。

我在网上看到了一些教程和文章,人们正在运行

flutterfire configure
并且一切正常。但显然不适合我,因为我在控制台中收到
Missing google_app_id. Firebase Analytics disabled
错误。

我尝试在 UI 中触发异常,但 Crashlytics 仪表板没有显示任何内容。

然后我手动更新了我的 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 控制台上的“实时分析”和“分析仪表板”页面没有显示任何活动。

我回到了 Firebase 在项目设置过程中给出的 SDK 说明,并尝试手动执行它们。我的项目是用 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"
}

那么,3个问题:

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

谢谢!

flutter firebase google-analytics
2个回答
0
投票

我也遇到了同样的问题。

这个答案对我有帮助: https://stackoverflow.com/a/77168724

我只需要升级我的 Gradle 依赖项
来自:

classpath 'com.android.tools.build:gradle:7.3.1'

致:
classpath 'com.android.tools.build:gradle:7.4.2'


0
投票

如果您使用 Flutterfire 配置新的 Firebase 项目,则需要执行以下几项操作来处理此问题:

  1. android/app/build.gradle
    ,请遵循 Firebase Analytics 的配置。
plugins {
    id "com.android.application"
    id "kotlin-android"
    id "dev.flutter.flutter-gradle-plugin"
    id "com.google.gms.google-services" // add this line
}

dependencies {
     // Import the Firebase BoM
  implementation platform('com.google.firebase:firebase-bom:32.7.0')


  // TODO: Add the dependencies for Firebase products you want to use
  // When using the BoM, don't specify versions in Firebase dependencies
  implementation 'com.google.firebase:firebase-analytics'
}
  1. android/build.gradle
buildscript {
    // TODO: you may need to update the kotlin_version
    ext.kotlin_version = '1.9.22'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        // TODO: you may need to update the gms_version
        classpath 'com.google.gms:google-services:4.4.0'
    }
}
  1. android/settings.gradle
plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    // TODO: you may need to update this plugin version if you are using a newer Flutter version.
    id "com.android.application" version "7.4.2" apply false
}
© www.soinside.com 2019 - 2024. All rights reserved.