无法使Firebase不适用于非Gradle版本:缺少google_app_id。 Firebase Analytics已禁用

时间:2019-02-28 14:30:27

标签: android firebase initialization firebase-analytics

我正在使用的应用程序具有非常定制的构建过程。无法使用gradle构建我的应用。这不是理想的选择,但是我对此无能为力。 不过,我想在我的应用程序中使用Firebase Analytics。其中包括以下模块:firebase-core,firebase-common,firebase-analytics,firebase-analytics-impl,firebase-iid,firebase-id-interop,firebase-measurement-connector,firebase-measurement-connector-imple,play-services- Measurement-Base和Play-Services-Measurement-api。我还向我的strings.xml添加了以下字符串,以及在google-services.json中为Firebase项目找到的值:

<string name="google_app_id" translatable="false">xxx</string>
<string name="gcm_defaultSenderId" translatable="false">xxx</string>
<string name="default_web_client_id" translatable="false">xxx</string>
<string name="firebase_database_url" translatable="false">xxx</string>
<string name="google_api_key" translatable="false">xxx</string>
<string name="google_crash_reporting_api_key" translatable="false">xxx</string>
<string name="project_id" translatable="false">xxx</string>

(如here所述),并从AndroidManifest中删除了FirebaseInitProvider。 在我的应用ApplicationonCreate()中,我这样做:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
            .setApplicationId(getString(R.string.google_app_id))
            .setApiKey(getString(R.string.google_api_key));
FirebaseApp.initializeApp(this, builder.build(), "[DEFAULT]");

到目前为止没有问题。执行以上代码后,我收到一条调试日志消息,提示:

FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.

很好,我没有包括auth模块。我的应用程序不需要它。当我调用FirebaseAnalytics.getInstance(adblockSettingsTextView.getContext()).getFirebaseInstanceId()时,它返回一个String值,因此我认为初始化成功。

现在每次我想要记录这样的事件

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "Dashboard");
FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);

我在日志中看到一个错误,提示Missing google_app_id. Firebase Analytics disabled. See https://firebase.google.com/docs/android/setup.,但在Firebase Analytics仪表板中没有看到任何活动用户。

我阅读了所有可以找到的文档,并尽力找到导致此问题的原因。但是现在我没有更多的想法可以检查或更改以使其起作用。帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

万一其他人遇到相同的问题,请在此处保留从Firebase支持获得的答案:

  

Google Analytics for Firebase(GA4F)不支持动态   初始化。我们的工程师正在检查可能的解决方案   支持这一点。只是我们还没有找到一个确定的   关于何时(或是否)可用的时间表。

     

GA4F在没有google-services.json文件(或Gradle on   你的结局)。即使您可以动态初始化FirebaseApp   通过代码,GA4F不会识别出此错误,只会导致   您看到的错误消息。您得到的情况仅仅是   特定于Google Analytics for Firebase。但是,您仍然可以使用   其他产品,例如Firestore,实时数据库,存储,即使您   没有使用Gradle插件。