javascript - firebase 在删除之前获取父数据的父数据

标签 javascript firebase firebase-realtime-database google-cloud-functions

我尝试使用此代码但不起作用

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;
});

database structure

最佳答案

数据库事件会自动传递事件触发的节点的任何数据(以及向下)。

当您沿着链向上时,您必须通过附加监听器来显式加载数据。这与您在此处的问题中所做的非常相似:firebase cloud function function looping in execution

不幸的是,这意味着您无法获取层次结构中比触发函数的位置更高的节点的先前值。

关于javascript - firebase 在删除之前获取父数据的父数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45491967/

相关文章:

arrays - 在 Firebase 中读取数组

java - Google Firebase 和 Dagger-2 无法工作

android - Firebase 位置查询

android - 如何绕过 Firebase 缓存来刷新数据(在 Android 应用中)?

android - Firebase:服务中的 onDisconnect()

javascript - 尝试计算价格时出现 NaN

javascript - 比较两个数组并找出差异

javascript - 如何通过javascript读取文本

ios - tableview 不刷新已删除的数据

javascript - 我可以在其他文件而不是index.js中编写firebase实时数据库触发器吗?