Firebase setCurrentScreen复制日志条目screen_view

时间:2020-02-11 16:41:04

标签: android firebase firebase-analytics

我需要在Firebase的打开屏幕上显示统计信息(与以前在analytics.google中一样)

并且我不需要显示诸如MainActivity之类的真实类名,而是显示ScreenSeviceList

我创建了一个包含4个Activity和3个Fragment(在MainActivity4中)的测试项目

class App : Application() {
companion object{
    lateinit var mFirebaseAnalytics: FirebaseAnalytics
}
override fun onCreate() {
    super.onCreate()
     mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)
}

}

所有活动均包含大致相同的代码

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    button2.setOnClickListener { startActivity(Intent(baseContext,Main2Activity::class.java)) }
    button3.setOnClickListener {  startActivity(Intent(baseContext,Main3Activity::class.java))}
    button4.setOnClickListener {  startActivity(Intent(baseContext,Main4Activity::class.java))}

}
override fun onResume() {
    super.onResume()
    App.mFirebaseAnalytics.setCurrentScreen(this, null, "ScreenActivity#1")
}

}

Activity4有3个片段,例如

class Fragment1 :Fragment(){

override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    val view=inflater.inflate(R.layout.fragment,container,false)
    view.fragment_title.text="====Fragment#1===="
    view.button_prev.setOnClickListener { activity!!.goToFragment(0) }
    view.button_next.setOnClickListener { activity!!.goToFragment(2) }
    return view
}
override fun onResume() {
    super.onResume()
    App.mFirebaseAnalytics.setCurrentScreen(activity!!, null, "ScreenFragment#1")
   }

}

在firebase控制台DebugView中,当我切换屏幕时。我看到两个事件screen_view
首先是firebase_screen_class = MainActivity
第二个偶数firebase_screen_class = ScreenActivity#1
对于片段,一切都很好
如何不注册MainActivity之类的自动事件,而仅注册ScreenActivity#1之类的自动事件呢?如您在下图中所看到的,条目是重复的,因此值不正确。例如,我们没有显示ScreenActivity#1 18 28%的行,而是看到14%的两个

enter image description here

1 个答案:

答案 0 :(得分:0)

解决方案当然不是很优雅,但是也许有人会派上用场。 如果有人知道更漂亮的解决方案,那么我将很高兴看到它

    override fun onResume() {
    App.mFirebaseAnalytics.setAnalyticsCollectionEnabled(false)
    super.onResume()
    App.mFirebaseAnalytics.setAnalyticsCollectionEnabled(true)
    App.mFirebaseAnalytics.setCurrentScreen(this, "ScreenActivity#1", "ScreenActivity#1")
}
相关问题