我必须为我的 Android 应用程序添加简单的 Firebase Google Analytics。
我需要在运行时选择应用的 Firebase 项目。
“这种情况很少见,但有时应用程序必须能够在运行时选择其 Firebase 项目。这意味着您的应用程序无法使用由合并到您的应用程序中的 FirebaseInitProvider 提供的自动初始化。在那种情况下,解决方案有两个任务。”
引用链接:https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html
所以,在我的例子中,我做了如下操作:
创建了一个应用程序类:
public class MyApplicationClass extends Application { @Override public void onCreate() { super.onCreate(); FirebaseOptions.Builder builder = new FirebaseOptions.Builder().setApplicationId("1:5478125639014:android:054aa87g102b94aa5").setApiKey("ABcdXyzpQrst_8tlItnC5rcbgxkK_PqrstGWsTKo"); FirebaseApp.initializeApp(this, builder.build()); }
添加了必需的 list Internet 权限。
添加依赖项:
实现“com.google.firebase:firebase-analytics:17.1.0”
问题是我在那里看不到任何分析数据,并且在 Google Analytic 的最后一步中应用程序未连接。
可能有什么问题或有待解决的问题?
最佳答案
我知道这不是您所期望的答案,但可悲的现实是您无法动态初始化您的 Firebase Analytics。
在官方 Firebase 存储库中,您可以看到问题 https://github.com/firebase/quickstart-android/issues/769那里的官方回答是“这目前正在按预期工作,Analytics SDK 不允许在运行时配置 App ID”。我认为从那以后它没有改变。
我知道这些帖子在那种情况下可能听起来令人困惑: https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html https://firebase.google.com/docs/projects/multiprojects
但预期用例具有不同的 FirebaseApp
配置(例如,针对不同的数据库)和不不同的 FirebaseAnalytics
配置。 Firebase Analytics 只是 Firebase 旗下的众多产品之一。
因此您不需要使用 gradle 插件,但您仍然需要拥有名为 google_app_id
的字符串资源,其中包含您的 Firebase 应用程序 ID,并且仅用于配置 FirebaseAnalytics。
这并不意味着 FirebaseAnalytics 的动态初始化根本无法完成,但它需要逆向工程、hacky 解决方案并且它很脆弱 - 简而言之,可能不是一个好主意。
我不确定你的用例是什么,但如果你只想延迟 Firebase Analytics 初始化,你可以考虑在开始时禁用它:https://firebase.google.com/docs/analytics/configure-data-collection?platform=android
关于android - 带有自定义 FirebaseOptions 初始化方法的 Firebase Google Analytics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703840/