我尝试使用此代码但不起作用
var idUser = event.data.ref.parent.ref.parent.child('idUser').previous.val();
然后我在尝试使用时遇到错误
event.data.ref.parent.ref.parent.child('idUser').onDelete(event => {
event.data.previous.val();
});
这是我的完整代码
exports.makePurchaseSummaryDelete = functions.database.ref('/invoice_data/{pushIdInvoice}/item/{pushIdItem}')
.onDelete(event => {
var name = event.data.child('itemName').previous.val();
var quantity = event.data.child('quantity').previous.val();
var idUser = event.data.ref.parent.ref.parent.child('idUser').previous.val();
var refUser = db.ref('/user_data/' + idUser + '/purchaseSummary/' + name.toUpperCase());
refUser.once("value", function(snapshotUser) {
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
return true;
});
最佳答案
数据库事件会自动传递事件触发的节点的任何数据(以及向下)。
当您沿着父
链向上时,您必须通过附加监听器来显式加载数据。这与您在此处的问题中所做的非常相似:firebase cloud function function looping in execution
不幸的是,这意味着您无法获取层次结构中比触发函数的位置更高的节点的先前值。
关于javascript - firebase 在删除之前获取父数据的父数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491967/