Firebase Functions中如何获取子文档对应的父文档ID
提取Firestore云函数路径通配符值的方法
直接通过触发器回调的context参数就能拿到,不需要手动解析文档路径:
- 你在文档监听路径里定义的
{id}通配符,Firebase会在触发函数时自动把匹配到的实际值存入context.params对象,属性名和你大括号里写的通配符名完全一致 - 直接读取
context.params.id就能得到字符串类型的父文档ID,不需要额外做类型转换
给个可直接参考的完整实现示例:
// 记得提前初始化admin SDK const admin = require('firebase-admin'); admin.initializeApp(); exports.onChanged = functions.firestore .document('col/{id}/details/doc') .onWrite(async (change, context) => { // 提取通配符匹配到的父文档ID const parentId = context.params.id; // 拿到父文档引用执行更新逻辑 const parentDocRef = admin.firestore().collection('col').doc(parentId); // 示例:同步更新父文档的对应详情字段、更新时间 await parentDocRef.update({ detailData: change.after.data(), updatedAt: admin.firestore.FieldValue.serverTimestamp() }); });
补充说明:如果你的监听路径有多个通配符,比如
col/{colId}/sub/{subId},对应的取值就是context.params.colId、context.params.subId,和你定义的通配符名一一对应即可。
内容的提问来源于stack exchange,提问作者yolo
相关产品推荐
相关产品推荐

