FCM导出至BigQuery失败求助:无表生成且提示源数据未找到
FCM BigQuery导出无表生成及“源数据未找到”问题解答
一、“源数据未找到”错误的常见原因
- 消息类型不符合导出规则:FCM BigQuery只导出下游发送的正式消息(即从FCM服务器发往设备的消息),测试消息(控制台测试发送)、上游消息(设备发往服务器)、主题订阅/取消操作这类数据不会被同步。先确认你发送的是符合要求的下游消息。
- 回填仅覆盖启用后的消息:BigQuery的回填功能只能拉取开启导出设置之后产生的消息数据,启用前发的消息没法通过回填获取。如果启用后没发过新的符合条件的消息,回填自然会提示找不到源数据。
- 权限配置缺失:检查Firebase绑定的BigQuery服务账号权限,默认的
firebase-measurement@system.gserviceaccount.com需要拥有BigQuery Data Editor和BigQuery Job User权限,否则没法往数据集写入数据。 - 区域不匹配:FCM日志存储的区域必须和你的BigQuery数据集区域一致,比如FCM默认存在
us-central1,如果数据集在其他区域,数据同步会失败,触发源数据未找到的错误。
二、关于客户端代码与FCM后端日志的说明
FCM BigQuery导出的数据分两类:
- FCM后端日志:包括消息提交到FCM服务器的记录、FCM服务器尝试发送的记录(不管设备是否收到),这类数据完全不需要客户端植入任何代码,只要启用导出且发送符合条件的下游消息,就会被同步到BigQuery。
- 设备端交互数据:比如消息是否成功送达、用户是否点击通知,这类数据才需要客户端集成FCM SDK并在对应回调里上报事件。
如果启用后一直没生成表,优先排查前面提到的消息类型、权限、区域这几个点。
内容的提问来源于stack exchange,提问作者Andres Toledo Lozano
相关产品推荐
相关产品推荐

