【问题标题】:Which is the best way to initiate Google Firebase Analytic instance in Android Applications?在 Android 应用程序中启动 Google Firebase 分析实例的最佳方式是什么?
【发布时间】:2019-07-08 03:43:58
【问题描述】:

我想在我的项目中使用 Firebase Analytic。但我在阅读如何使用 Firebase Analytics 时遇到的三种方法感到困惑。

1 使用活动。 2 使用应用程序。 3 使用内容提供者。

我也有以下帖子的场景。

[问题]:调用-firebase-analytics-getinstance-every-time-vs-storing-instance Calling Firebase Analytic's getInstance() every time vs. storing instance as a static variable in Application class

[博客]:如何做-firebase-initialize-on-android https://firebase.googleblog.com/2016/12/how-does-firebase-initialize-on-android.html

所以,朋友们,我想知道在哪种情况下我们应该更喜欢以下方法。如果我使用 Activity 上下文与应用程序上下文,Activity 周期如何影响发布到 Firebase 的分析数据。我担心 Firebase 可能会使用导出有关生命周期或应用程序流程的上下文。

【问题讨论】:

  • 我与上述帖子中的评论之一有同样的疑问。也就是说,“我担心 Firebase 可能会使用上下文来获取有关生命周期或应用程序流的信息。我读过的所有指南都只声明它应该放在 Activity 中”

标签: android performance firebase android-studio firebase-analytics


【解决方案1】:

Firebase Analytics 会自动记录一些事件和用户属性;您无需添加任何代码即可启用它们。 https://firebase.google.com/docs/analytics/android/start

您只需要在应用程序类的 onCreate 方法中调用 FirebaseAnalytics.getInstance(),而不需要在每个活动中调用它。

【讨论】:

  • 谢谢@Mahmoud Waked。我也在使用一些动态小部件。并且想知道在 Application vs Activity 的上下文中为用户事件创建 firebase 实例的区别。
  • 欢迎兄弟,没有什么不同,只是应用程序或活动的上下文只是检测读取 firebase 分析的范围,如果你调用带有应用程序上下文的 firebase 分析,如果你调用,它将从所有应用程序发送分析带有活动上下文的 firebase 分析将仅从该活动发送分析。
【解决方案2】:

首先,你需要了解 1 Using Activity 的区别。 2 使用应用程序。

  1. Activity 上下文的范围有限,只有在 Activity 可用时才可用,并且在销毁 Activity 时上下文为 null

  2. 应用程序上下文在整个应用程序中都可用,并且仅在应用程序第一次打开时初始化一次

理想情况下,您应该使用应用程序上下文来避免 Null 指针和 Firebase Analytics 只需设置一次。

Firebase Analytics 会自动记录一些事件,包括活动名称,但不会记录自定义小部件。

对于自定义小部件,您需要创建自定义事件并发送到 Firebase Analytics:

Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, id);
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, name);
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);

推荐这个link

希望对你有帮助!!!

【讨论】:

  • 谢谢@Harsh Shah 我和上述帖子中的一位评论者有同样的疑问。也就是说,“我担心 Firebase 可能会使用上下文来获取有关生命周期或应用程序流的信息。我读过的所有指南都只声明它应该放在 Activity 中”
  • 很高兴它有帮助。如果您认为这是正确的答案,请接受答案,这样它也可能对其他人有用。编码快乐!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多