我正在使用的应用程序具有非常定制的构建过程。无法使用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
。
在我的应用Application
类onCreate()
中,我这样做:
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仪表板中没有看到任何活动用户。
我阅读了所有可以找到的文档,并尽力找到导致此问题的原因。但是现在我没有更多的想法可以检查或更改以使其起作用。帮助将不胜感激。谢谢!
答案 0 :(得分:2)
万一其他人遇到相同的问题,请在此处保留从Firebase支持获得的答案:
Google Analytics for Firebase(GA4F)不支持动态 初始化。我们的工程师正在检查可能的解决方案 支持这一点。只是我们还没有找到一个确定的 关于何时(或是否)可用的时间表。
GA4F在没有google-services.json文件(或Gradle on 你的结局)。即使您可以动态初始化FirebaseApp 通过代码,GA4F不会识别出此错误,只会导致 您看到的错误消息。您得到的情况仅仅是 特定于Google Analytics for Firebase。但是,您仍然可以使用 其他产品,例如Firestore,实时数据库,存储,即使您 没有使用Gradle插件。