BigQuery中notification_open事件无message_id,请求排查Firebase配置
Firebase Cloud Messaging通知数据在BigQuery中缺失event_params问题排查
问题描述
我使用Firebase Cloud Messaging(FCM),需要分析BigQuery中的通知数据。在<project_name>.analytics_[0-9]*.event_*表中能找到notification_open事件,但该事件的event_params为空,没有message_id等关键参数。根据官方说明,Google Analytics应该记录message_name、message_time、message_device_time、message_id、topic、label及message_channel这些参数。执行以下查询后无结果返回,但在firebase_messaging.data表中能正常找到message_id:
SELECT * FROM `<project_name>.analytics_[0-9]*.events_*`, unnest(event_params) as event_param where event_name = 'notification_open' and event_param.key = 'message_id' LIMIT 1000
现需排查移动端、Google Analytics或Firebase的配置问题,以获取可用于分析的完整数据。
一、移动端SDK配置排查
- 确保Analytics与FCM集成正确:
- Android端:确认
build.gradle中同时引入Firebase Analytics和FCM依赖,初始化时同时调用FirebaseAnalytics.getInstance(context)和FirebaseMessaging.getInstance()。 - iOS端:检查
AppDelegate中是否完成FirebaseApp.configure()配置,且通知回调(如userNotificationCenter(_:didReceive:withCompletionHandler:))中未干扰Analytics的自动上报逻辑。
- Android端:确认
- 验证通知打开事件的自动上报:
FCM默认会在用户点击通知时自动触发notification_open事件并携带参数,若自定义了通知点击逻辑,需确保调用FirebaseAnalytics.logEvent("notification_open", parameters: params)时传入完整参数集合。 - 检查参数传递完整性:
发送测试通知时,确认在FCM控制台或发送API中指定了message_id、topic等元数据,移动端接收通知后需确保这些参数被正确解析并随事件上报。
二、Firebase后台配置排查
- 确认Analytics与FCM关联正常:
在Firebase控制台中,检查项目是否同时启用Google Analytics和FCM,且两者属于同一项目;验证Analytics数据流已正确关联FCM,且数据导出到BigQuery的开关处于开启状态,导出范围包含事件数据。 - 检查数据导出规则:
进入BigQuery导出设置,确认notification_open事件未被排除在导出列表之外,且事件参数的导出权限未被限制。
三、数据同步与查询验证
- 等待数据同步延迟:
Firebase Analytics数据导出到BigQuery存在24-48小时的延迟,确认测试事件发生后已过足够时间再执行查询。 - 调整查询语句验证:
先执行基础查询确认事件及参数状态:
若返回的SELECT event_name, event_params FROM `<project_name>.analytics_[0-9]*.events_*` WHERE event_name = 'notification_open' LIMIT 10event_params为空,说明事件上报时未携带参数,需回到移动端排查;若有参数但无message_id,则检查上报逻辑是否遗漏该参数。 - 对比
firebase_messaging.data表数据:
查询firebase_messaging.data表中对应message_id的通知记录,确认该通知确实被用户点击(触发notification_open事件),排除因未点击导致事件未上报的情况。
内容的提问来源于stack exchange,提问作者ibraheem qanah
相关产品推荐
相关产品推荐

