Typescript 防止在Firebase函数中调用子触发器
你好,我对firebase函数中的子触发器的行为有点困难。为了演示,我创建了一个小项目Typescript 防止在Firebase函数中调用子触发器,typescript,firebase,firebase-realtime-database,google-cloud-functions,Typescript,Firebase,Firebase Realtime Database,Google Cloud Functions,你好,我对firebase函数中的子触发器的行为有点困难。为了演示,我创建了一个小项目 我们有这样的实时数据库结构: 和firebse触发器。第一个触发器在创建项目时增加计数。第二个触发器在删除项目时减少计数。删除列表时最后一次触发删除项目: import*作为“firebase函数”中的函数; 从“firebase admin”导入*作为管理员; admin.initializeApp(); //关于创建项目 export const onitemcrate=functions.data
import*作为“firebase函数”中的函数;
从“firebase admin”导入*作为管理员;
admin.initializeApp();
//关于创建项目
export const onitemcrate=functions.database.ref('listItems/{listKey}/{itemKey}')。onCreate(异步(快照,上下文)=>{
试一试{
返回admin.database().ref(`list/${context.params.listKey}/itemCount`)。事务(count=>{
返回计数+1;
});
}捕获(错误){
抛出新函数.https.HttpsError(error.code、error.message、error.details);
}
})
//关于删除项目
export const onItemDelete=functions.database.ref('listItems/{listKey}/{itemKey}')。onDelete(异步(快照,上下文)=>{
试一试{
返回admin.database().ref(`list/${context.params.listKey}/itemCount`)。事务(count=>{
返回计数-1;
});
}捕获(错误){
抛出新函数.https.HttpsError(error.code、error.message、error.details);
}
},)
//在列表中删除
export const onListDelete=functions.database.ref('list/{listKey}').onDelete(异步(快照,上下文)=>{
试一试{
返回admin.database().ref(`listItems/${context.params.listKey}`)。remove();
}捕获(错误){
抛出新函数.https.HttpsError(error.code、error.message、error.details);
}
})
当父触发器被移除时,是否有方法防止子触发器调用
否。当父节点被删除时,子节点被隐式删除,这将始终触发与子节点路径匹配的onDelete函数
如果您希望触发器在某些情况下执行不同的操作,则必须对函数进行编码以检测该情况并相应地采取行动