android - 带有自定义 FirebaseOptions 初始化方法的 Firebase Google Analytics

标签 android firebase google-analytics firebase-analytics

我必须为我的 Android 应用程序添加简单的 Firebase Google Analytics。

我需要在运行时选择应用的 Firebase 项目。

“这种情况很少见,但有时应用程序必须能够在运行时选择其 Firebase 项目。这意味着您的应用程序无法使用由合并到您的应用程序中的 FirebaseInitProvider 提供的自动初始化。在那种情况下,解决方案有两个任务。”

引用链接:https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html

所以,在我的例子中,我做了如下操作:

  1. 创建了一个应用程序类:

    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());
        }
    
  2. 添加了必需的 list Internet 权限。

  3. 添加依赖项:

    实现“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/

相关文章:

html - Firebase 托管 URL 需要 .html 才能显示页面

google-analytics - 我应该在技术支持网站报告中提供哪些关键指标,以供公司的执行领导团队查看?

javascript - Android 键盘关闭输入焦点

java - 如何检查 WiFi 扫描限制是否启用或禁用?

android - 指定为非 null 的参数 pendingDynamicLinkData 为 null

google-analytics - Ctrl+Click/Command+Click 不适用于分析

iphone - 无法获取Google Analytics(分析)API来在iPhone上注册页面浏览量

android - CordovaResourceApi 导入 Unresolved phonegap

Javax.comm 错误

swift - 如何在 Firebase 上每天重置数据?