Firebase云函数1代转2代:无法获取onDocumentCreated的文档数据
Firebase云函数V2获取Firestore文档数据的正确方式
问题核心是你没注意到V2云函数的触发器参数结构变化:
- V1中
onDocumentCreated的回调参数直接是文档快照(QueryDocumentSnapshot),可直接调用data(); - V2里回调参数是一个CloudEvent事件对象,真正的文档快照存放在这个对象的
data属性中。
看你打印的事件对象结构,里面的data字段就是你需要的QueryDocumentSnapshot,调整代码即可:
exports.profileCreation = onDocumentCreated( "profiles/{profile}", async (event) => { // 从事件对象中提取文档快照 const docSnapshot = event.data; // 调用data()获取文档的键值对数据 const profileData = docSnapshot.data(); console.log("完整文档数据: ", profileData); console.log("用户邮箱: ", profileData.email); console.log("用户名: ", profileData.userName); console.log("发布状态: ", profileData.adminPublish); } );
补充说明:
- 若只想单独获取某个字段,也可以用
docSnapshot.get('email')这种方式,和V1的用法完全一致; - 事件对象里的
params字段可用来获取路径通配符的值(比如这里的profile文档ID),用法是event.params.profile。
内容的提问来源于stack exchange,提问作者Coolkid
相关产品推荐
相关产品推荐

