Javascript 如何获取firebase实时事务的修改值?

Javascript 如何获取firebase实时事务的修改值?,javascript,firebase-realtime-database,Javascript,Firebase Realtime Database,我正在编写一个脚本,需要同时执行一个列表并将属性擦除设置为true。我会用这个值来做一些事情,所以我需要它来返回修改过的值。我知道我可以在参数snapshot中获得完整的modify值,但是是否只需要获得修改后的值 例如: this.database.ref(refQuery).transaction(function(messages) { if(messages) { var arrayMessages = [] let value

我正在编写一个脚本,需要同时执行一个列表并将属性擦除设置为true。我会用这个值来做一些事情,所以我需要它来返回修改过的值。我知道我可以在参数
snapshot
中获得完整的modify值,但是是否只需要获得修改后的值

例如:

 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.
      })
this.database.ref(refQuery).transaction(函数)(消息){
如果(信息){
var arrayMessages=[]
让值=对象值(消息)
让keys=Object.keys(消息)
for(设i=0;i{
//更改值,它在哪里?
//我想获取messages[arrayMessages[0].key]值对象。
})

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

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