【问题标题】:firebase get parrent of parent data before deletefirebase 在删除之前获取父数据的父级
【发布时间】:2017-08-03 18:29:51
【问题描述】:

我尝试使用此代码但无法正常工作

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

【问题讨论】:

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


【解决方案1】:

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

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

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

【讨论】:

  • 感谢您的回答,我可以在从快照中删除之前获取以前的数据吗?
  • 不是来自普通的Snapshot。先前的值仅在 DeltaSnapshot 中可用。您只能从event 参数中获取DeltaSnapshot。来自听众的任何东西都是普通的Snapshot
猜你喜欢
  • 1970-01-01
  • 2016-05-05
  • 2020-11-23
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多