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)
}
自最新版本以来,可以关闭 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)
}