firebase 在删除之前获取父数据的父级
firebase get parrent of parent data before delete
我尝试使用此代码但无法正常工作
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;
});
数据库事件会自动传递事件触发(及向下)节点的任何数据。
当您沿着 parent
链向上移动时,您将必须通过附加侦听器来显式加载数据。这与您在此处的问题中所做的非常相似:
不幸的是,这意味着您无法获得层次结构中高于触发函数的节点的先前值。
我尝试使用此代码但无法正常工作
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;
});
数据库事件会自动传递事件触发(及向下)节点的任何数据。
当您沿着 parent
链向上移动时,您将必须通过附加侦听器来显式加载数据。这与您在此处的问题中所做的非常相似:
不幸的是,这意味着您无法获得层次结构中高于触发函数的节点的先前值。