Firebase Analytics 手动屏幕跟踪在 Android 上不起作用

Firebase Analytics manual screen tracking not working on Android

自最新版本以来,可以关闭 Firebase Analytics 中的自动屏幕跟踪,并通过在Bundle:

val bundle = Bundle().apply {
    putString(FirebaseAnalytics.Param.SCREEN_CLASS, activity.localClassName)
    putString(FirebaseAnalytics.Param.SCREEN_NAME, screenName)
}

但是,我意识到跟踪在 firebase 控制台中不可见,即使我尝试使用 DebugView 对其进行测试也是如此。我在 onCreate 方法中的 Activity 中进行了 logEvent 调用:

override fun onCreate(savedInstanceState: Bundle) {
    super.onCreate(savedInstanceState)
    // ...
    val bundle = Bundle().apply {
        putString(FirebaseAnalytics.Param.SCREEN_CLASS, this.localClassName)
        putString(FirebaseAnalytics.Param.SCREEN_NAME, "My Screen")
    }
    FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle)
}

在尝试不同的东西并仔细分析代码后,意识到问题是由于在错误的生命周期方法中进行调用引起的。不要在 onCreate 中调用 logEvent 调用,而是在 activity 的状态恢复后调用:

override fun onResume() {
    super.onResume()
    // ...
    val bundle = Bundle().apply {
        putString(FirebaseAnalytics.Param.SCREEN_CLASS, this.localClassName)
        putString(FirebaseAnalytics.Param.SCREEN_NAME, "My Screen")
    }
    FirebaseAnalytics.getInstance(this).logEvent(FirebaseAnalytics.Event.SCREEN_VIEW, bundle)
}