Firebase通知无“已打开”统计:手动上报方法咨询
解决Firebase通知打开统计未上报的问题
我之前也碰到过类似的困扰,不管是手动处理通知还是用Firebase默认逻辑,都可能遇到统计不上报的情况,下面分两种场景给你解决方案:
一、手动处理通知时,如何手动上报打开事件
当你重写FirebaseMessagingService的onHandleIntent自己生成通知时,Firebase的自动统计机制就不会触发了,这时候需要我们手动调用Firebase Analytics的API来上报通知打开事件。
具体步骤:
- 在用户点击你自定义的通知后,打开的目标Activity里(或者处理通知点击逻辑的地方),获取通知的关键参数(比如Firebase的消息ID)
- 调用Firebase Analytics的
logEvent方法,上报notification_open事件
示例代码(Kotlin):
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_notification_detail) // 从Intent中获取Firebase消息的ID val messageId = intent.extras?.getString("google.message_id") messageId?.let { val firebaseAnalytics = FirebaseAnalytics.getInstance(this) val eventParams = Bundle().apply { // 必须携带消息ID,Firebase才能关联到对应的通知统计 putString(FirebaseAnalytics.Param.NOTIFICATION_ID, it) // 可选:添加自定义参数,比如通知标题、类型等 putString("notification_title", intent.extras?.getString("title")) } // 上报通知打开事件 firebaseAnalytics.logEvent(FirebaseAnalytics.Event.NOTIFICATION_OPEN, eventParams) } }
注意:上报的事件不会实时显示在Firebase控制台,一般需要1-2小时才能看到统计数据。
二、常规处理通知但统计仍未上报的排查点
如果让Firebase按默认逻辑处理通知,但还是看不到打开统计,你可以从以下几个方面排查:
- 检查Analytics集成是否完整:确保你的项目已经添加了Firebase Analytics依赖,并且在应用启动时完成了初始化;另外,对于欧盟地区的用户,需要获得用户的Analytics收集同意,否则统计会被禁用。
- 检查通知的发送格式:如果是通过FCM API发送通知,必须包含
notification字段(而不是只传data字段),Firebase才会自动处理通知展示和统计上报;如果只传data,Firebase会把消息交给你的FirebaseMessagingService,这时候还是需要手动处理。 - 检查设备的Analytics状态:确认测试设备没有禁用Firebase Analytics(比如系统设置里的限制),可以打开Firebase控制台的DebugView,实时查看设备的事件上报情况,验证是否有
notification_open事件触发。 - 检查Activity的配置:确保接收通知点击的Activity在AndroidManifest里配置了正确的
intent-filter,比如添加android.intent.category.DEFAULT和android.intent.category.BROWSABLE类别,保证Firebase能正确触发默认的点击逻辑。
内容的提问来源于stack exchange,提问作者JoshuaTree
相关产品推荐
相关产品推荐

