exports.myFunction = functions.firestore
.document('users/{userID}')
.onDelete((snap, context) => {
// do something
});
我也希望此函数也触发另一个集合,例如offices
。无需复制并粘贴整个内容的最佳方法是什么?
答案 0 :(得分:1)
路径中的任何内容都可以是通配符,因此如果要在所有集合上触发:
exports.myFunction = functions.firestore
.document('{collectionName}/{userID}')
.onDelete((snap, context) => {
// do something
});
虽然无法设置一个在两个但不是全部集合上触发的单一路径。如果需要的话,只需通过将代码隔离在(常规非Cloud)函数中来最大程度地减少代码重复:
exports.myFunction = functions.firestore
.document('users/{userID}')
.onDelete((snap, context) => {
doSomething(...)
});
exports.myFunction = functions.firestore
.document('offices/{officeID}')
.onDelete((snap, context) => {
doSomething(...)
});
function doSomething(...) {
...
}
答案 1 :(得分:0)
除了其他答案外,您还可以通过检查来执行通配符功能:
if(message.content.toLowerCase().includes('undefined')) message.channel.send("undefined check!");
else {
var sent = false;
for(var i = 0; i < message.embeds.length; i++) {
if(message.embeds[i].title.toLowerCase().includes("test")) {
message.channel.send("checked!");
break;
} else{
for(var j = 0;j < message.embeds[i].fields.length;j++){
if(message.embeds[i].fields[j].name.toLowerCase().includes("test") || message.embeds[i].fields[j].value.toLowerCase().includes("test")){
message.channel.send("checked!");
sent = true;
break;
}
}
if(sent) break;
}
}
}