Как я могу получить измененное значение для транзакции в реальном времени Firebase? - PullRequest
0 голосов
/ 03 января 2019

Я работаю над сценарием, который должен выполнять список одновременно и установить стирание свойства в 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 голосов
/ 03 января 2019

Для этого ничего не встроено, так что вам придется развернуть свое собственное решение.

Простой подход состоит в том, чтобы сохранить это свойство, которое вы изменили, в переменной с более высокой областью действия, а затем использовать его в конечном then().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...