如何在BigQuery中关联event_log表与Firebase Auth表获取用户邮箱?
可行性说明与实现步骤
完全可以在BigQuery中直接关联event_log表与Firebase Auth用户数据,前提是正确配置Firebase Auth到BigQuery的用户数据导出功能。
1. 确认Firebase Auth的BigQuery导出配置
前往Firebase控制台对应项目的Authentication > 集成页面,找到BigQuery集成选项:
- 开启用户数据导出,指定要存储用户数据的BigQuery数据集(建议选择与
event_log同项目的数据集,简化权限配置) - 导出生效后,Firebase会每日自动向指定数据集写入用户快照表,表名格式为
auth_users_YYYYMMDD(YYYYMMDD为导出日期)
2. 编写关联查询语句
方式一:基于最新用户快照表查询
直接使用最新日期的Auth用户表关联event_log,替换日期后缀为实际最新的表名即可:
SELECT el.user_id, el.event_type, au.email FROM `你的项目ID.你的数据集.event_log` el LEFT JOIN `你的项目ID.你的数据集.auth_users_20240520` au ON el.user_id = au.uid;
方式二:创建视图获取最新用户数据(推荐)
如果不想每次手动替换日期表名,可以先创建一个视图自动获取最新的Auth用户快照:
CREATE OR REPLACE VIEW `你的项目ID.你的数据集.latest_auth_users` AS SELECT * FROM `你的项目ID.你的数据集.auth_users_*` ORDER BY _TABLE_SUFFIX DESC LIMIT 1;
之后直接用视图关联查询:
SELECT el.user_id, el.event_type, au.email FROM `你的项目ID.你的数据集.event_log` el LEFT JOIN `你的项目ID.你的数据集.latest_auth_users` au ON el.user_id = au.uid;
注意事项
- 确保
event_log表的user_id与Firebase Auth表的uid字段完全匹配(即你提到的Firebase注册时分配的user_uid) - 若Firebase Auth导出数据集与
event_log不在同一BigQuery项目,需配置跨项目数据访问权限 - 默认导出为每日快照,若需实时同步用户数据,需额外配置Cloud Functions触发器将Auth用户变更同步到BigQuery
内容的提问来源于stack exchange,提问作者Gary Frewin
相关产品推荐
相关产品推荐

