如何在Firebase实时交易中获得修改后的价值?

时间:2019-01-03 15:21:10

标签: javascript firebase-realtime-database

我正在处理需要同时执行列表并将属性清除设置为true的脚本。他们,我将使用该值来做一些事情,所以我需要它返回已修改的内容。我知道我可以在参数snapshot中获得完整的修改后的值,但是无论如何,仅可以获得修改后的值?

示例:

 this.database.ref(refQuery).transaction(function(messages) {
        if(messages) {

          var arrayMessages = []
          let values = Object.values(messages)
          let keys = Object.keys(messages)

          for(let i = 0; i < values.length; i++) {
            if(!values[i].erase) {
              arrayMessages.push({ key: keys[i], value: values[i] })
            }
          }
          console.log('modified',messages[arrayMessages[0].key])
          messages[arrayMessages[0].key].erase = true;

        }
        return messages;
      }).then(({ committed, snapshot }) => {
        //Get the value changed, where is it?
        //I would like to get the messages[arrayMessages[0].key] value object.
      })

1 个答案:

答案 0 :(得分:1)

没有内置的功能,因此您必须推出自己的解决方案。

一种简单的方法是将您修改的属性存储在更高范围的变量中,然后在最后的then()中使用它。