如何在云函数触发器中重用相同的通配符参数?
例如,我只想在‘/rootCollection/{docID}/{docID}/{doc}’
上触发。如果仅在子集合中创建与父文档({docID}
同名的子集合中的文档,我只希望函数触发。
如果在文档{docID}
的其他子集合中创建文档,我不希望触发。
所以我可以尝试使用:
functions.firestore.document(‘/rootCollection/{docID}/{docID}/{doc}’)
但这会在部署时产生错误。
例如,如果我将通配符名称更改为{docIDCollection}
,那么它将起作用:
exports.exampleFunction = functions.firestore.document(‘/rootCollection/{docID}/{docIDCollection}/{doc}’)
.onCreate(async (snapshot, context) => {
但是,当在文档{docID}
的任何子集合中创建任何文档时,该函数都会触发。即使子集合与父文档的名称不同。我不要这个。
如何使第三个参数与第二个通配符相同,以便函数仅触发ID为{docID}
的子集合?
有人帮忙吗?
答案 0 :(得分:1)
无法验证您在Cloud Functions路径中要执行的操作。路径中的每个参数名称都必须是唯一的。
您将不得不让de function在更多的写操作上触发,然后通过比较命名参数来忽略代码中不同子集合上的操作。
exports.exampleFunction = functions.firestore.document(‘/rootCollection/{docID}/{docIDCollection}/{doc}’)
.onCreate(async (snapshot, context) => {
if (context.params.docID == context.params.doc) {
...