【发布时间】:2020-12-09 21:40:31
【问题描述】:
您好,我对 firebase 函数中子触发器的行为有一点困难。为了演示,我创建了一个小项目。
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
// ON CREATE ITEM
export const onItemCraate = functions.database.ref('listItems/{listKey}/{itemKey}').onCreate(async(snapshot, context)=>{
try{
return admin.database().ref(`list/${context.params.listKey}/itemCount`).transaction(count =>{
return count+1;
});
}catch (error){
throw new functions.https.HttpsError(error.code, error.message, error.details);
}
})
// ON DELETE ITEM
export const onItemDelete = functions.database.ref('listItems/{listKey}/{itemKey}').onDelete(async(snapshot, context)=>{
try{
return admin.database().ref(`list/${context.params.listKey}/itemCount`).transaction(count =>{
return count-1;
});
}catch (error){
throw new functions.https.HttpsError(error.code, error.message, error.details);
}
},)
// ON LIST DELETE
export const onListDelete = functions.database.ref('list/{listKey}').onDelete(async(snapshot, context)=>{
try{
return admin.database().ref(`listItems/${context.params.listKey}`).remove();
}catch (error){
throw new functions.https.HttpsError(error.code, error.message, error.details);
}
})
所以问题是:当我删除列表时,“onDeleteList”触发删除项目firebase cast“onItemDelete”触发每个listItem。然后在“ghost”列表中更新“itemCount”。 当父母被移除时,有什么方法可以防止孩子触发呼叫?下图:
【问题讨论】:
标签: typescript firebase firebase-realtime-database google-cloud-functions