我在Android应用程序中使用多个firebase项目.我收到此错误:缺少google_app_id.Firebase Analytics已停用

mar*_*922 9 android multiple-projects firebase firebase-analytics

我添加了以下代码来初始化项目.

FirebaseOptions options = new FirebaseOptions.Builder()
            .setApplicationId("1:129574837465:android:0123456773a52cf4f6") // Required for Analytics.
            .setApiKey("iubdeibneh8gzDt7Xn9f-jdjjdjdjdj") // Required for Auth.
            .setDatabaseUrl("https://databasename-d7r7.firebaseio.com") // Required for RTDB.
            .build();

FirebaseApp.initializeApp(context /* Context */, options, "secondary");


FirebaseOptions options2 = new FirebaseOptions.Builder()
            .setApplicationId("1:129574837465:android:0123456773a52cf4f6") // Required for Analytics.
            .setApiKey("iubdeibneh8gzDt7Xn9f-jdjjdjdjdj") // Required for Auth.
            .setDatabaseUrl("https://databasename2-d7r7.firebaseio.com") // Required for RTDB.
            .build();

FirebaseApp.initializeApp(context /* Context */, options2, "secondary2");


FirebaseOptions options3 = new FirebaseOptions.Builder()
            .setApplicationId("1:129574837465:android:0123456773a52cf4f6") // Required for Analytics.
            .setApiKey("kjdkj-o_3nk4jn4k3kjk23j") // Required for Auth.
            .setDatabaseUrl("https://databasename3-d7r7.firebaseio.com") // Required for RTDB.
            .build();

FirebaseApp.initializeApp(context /* Context */, options3, "secondary3");
Run Code Online (Sandbox Code Playgroud)

初始化后,我的应用运行正常.我可以使用FirebaseAuth和FirebaseRTDB,但是当它必须访问firebase_Application_Id进行分析时会抛出错误.

我已经交叉检查了所有项目的google-services.json文件中的ID.我不知道为什么,但它抛出错误说:

Missing google_app_id. Firebase Analytics disabled.
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚这个错误的根源.

Ant*_*hev 14

在我的情况下,问题是Firebase配置不完整.

我失踪了

buildscript {
    ...
    dependencies {
        ...
        classpath 'com.google.gms:google-services:4.1.0' // google-services plugin
    }
}

allprojects {
    ...
    repositories {
        google()
    }
}
Run Code Online (Sandbox Code Playgroud)

来自build.gradle.

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

来自app/build.gradle.

  • 谢谢!`// ADD THIS AT THE BOTTOM` 也适用于顶部。为我修好了。 (3认同)

小智 5

您能否仔细检查一下 google-services.json 是否位于您的 Android 应用模块根目录?

在此处输入图片说明

如果存在,请确保 google-services.json 具有 mobilesdk_app_id 密钥。它应该位于 client_info 节点下。

 {
   ...,
   "client": [
     {
        "client_info": {
          "mobilesdk_app_id": "random_string",
          ...
        }
     }
   ]
 }
Run Code Online (Sandbox Code Playgroud)

  • 主要问题是我想以编程方式初始化默认的 firebase 项目。我必须至少使用一个 google-services.json 文件来初始化默认项目。Firebase 的初始化方式如下:[Firebase 如何在 Android 上初始化?](https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html)。 (2认同)

Gar*_*ain 5

问题可能是由于instant app已启用

解决方案:手动将google_app_id添加到strings.xml文件中?—?正如这里所说

在此处输入图片说明

更新:如果应用程序在没有任何警告或错误的情况下崩溃,请尝试此操作(maven):

转到项目级别build.gradle并检查它是否完全像这样:

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

并且代码突然起作用了,当您查看其他答案时,您会发现相同的答案。