Typescript 防止在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

你好,我对firebase函数中的子触发器的行为有点困难。为了演示,我创建了一个小项目

  • 我们有这样的实时数据库结构:

  • 和firebse触发器。第一个触发器在创建项目时增加计数。第二个触发器在删除项目时减少计数。删除列表时最后一次触发删除项目:

  • 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函数

    如果您希望触发器在某些情况下执行不同的操作,则必须对函数进行编码以检测该情况并相应地采取行动