【问题标题】:I am using multiple firebase projects in an Android App. I am getting this error : Missing google_app_id. Firebase Analytics disabled我在 Android 应用程序中使用多个 firebase 项目。我收到此错误:缺少 google_app_id。 Firebase 分析已停用
【发布时间】:2017-08-13 02:09:50
【问题描述】:

我添加了以下代码来初始化那里的项目。

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");

初始化后,我的应用程序运行良好。我可以很好地使用 FirebaseAuth 和 FirebaseRTDB,但是当它必须访问 firebase_Application_Id 进行分析时会引发错误。

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

Missing google_app_id. Firebase Analytics disabled.

我无法找出这个错误的根源。

【问题讨论】:

  • 再次重新下载 google-services.json 并重建您的项目
  • 我做到了。它不工作!
  • 文档说“注意:在 Android 和 iOS 上,Firebase Analytics 仅记录默认应用程序。” firebase.google.com/docs/configure,你检查了吗?
  • @mark922 你找到解决这个问题的方法了吗?

标签: android firebase firebase-analytics multiple-projects


【解决方案1】:

就我而言,问题在于 Firebase 配置不完整。

我不见了

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

allprojects {
    ...
    repositories {
        google()
    }
}

来自 build.gradle。

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

来自 app/build.gradle。

【讨论】:

  • 谢谢! // ADD THIS AT THE BOTTOM 也适用于顶部。为我修好了。
【解决方案2】:

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

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

 {
   ...,
   "client": [
     {
        "client_info": {
          "mobilesdk_app_id": "random_string",
          ...
        }
     }
   ]
 }

【讨论】:

  • 是的。我再次交叉检查了它。它位于正确的位置,并且 "mobilesdk_app_id":"VALUE" 也在那里。
  • 主要问题是我想以编程方式初始化默认的 firebase 项目。我必须使用至少一个 google-services.json 文件来初始化默认项目。以下是 Firebase 自身的初始化方式:How does Firebase initialize on Android?.
【解决方案3】:

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

解决方案: 手动将 google_app_id 添加到 strings.xml 文件 — as told here

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

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

allprojects {
    repositories {
        jcenter()
        maven {
            url "https://maven.google.com"
        }
    }
}

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

【讨论】:

    【解决方案4】:

    在 OnCreate() 早期使用 APP ID 和客户端密钥初始化 FirebaseApp:

    FirebaseOptions options = new FirebaseOptions.Builder()
           .setApplicationId("1:530266078999:android:481c4ecf3253701e") // Required for Analytics.
           .setApiKey("AIzaSyBRxOyIj5dJkKgAVPXRLYFkdZwh2Xxq51k") // Required for Auth.
           .setDatabaseUrl("https://project-1765055333176374514.firebaseio.com/") // Required for RTDB.
           .build();
    FirebaseApp.initializeApp(this /* Context */, options, "secondary");
    

    来源:https://firebase.googleblog.com/2016/12/working-with-multiple-firebase-projects-in-an-android-app.html

    【讨论】:

      【解决方案5】:

      @Anton Malyshev 的答案是正确的。

          ↓ 项目分级

      buildscript {
          ...
          dependencies {
              ...
              classpath 'com.google.gms:google-services:4.3.3' // google-services plugin
          }
      }
      
      allprojects {
          ...
          repositories {
              google()
          }
      }
      

          ↓ 应用分级

      apply plugin: 'com.google.gms.google-services'
      

      【讨论】:

        【解决方案6】:

        手动将google_app_id 添加到strings.xml 文件中,例如:

        你可以从google-services.json得到google_app_id,其中定义为mobilesdk_app_id

        【讨论】:

          【解决方案7】:

          就我而言,我将 gradle 版本从
          classpath 'com.android.tools.build:gradle:3.4.1' 增加到

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

          在 build.gradle 项目级别,问题消失了

          【讨论】:

            猜你喜欢
            • 2020-07-15
            • 1970-01-01
            • 2021-10-20
            • 1970-01-01
            • 1970-01-01
            • 2022-11-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多