Облачная функция для вычета значений из баланса пользователя - PullRequest
0 голосов
/ 16 сентября 2018

Я довольно интенсивно использую облачные функции в приложении, которое я создаю, и хотел бы посоветовать, как лучше решить эту проблему.

Моя функция выглядит так

exports.deductFromBalance = functions.database.ref('listings{listing}').onCreate((snap, context) => {
  const author = snap.val().uid;
  return admin.database().ref(`balances/${snap.val().uid}`).update({
    balance: //current balance -= 1
  })
})

Мне нужен способ уменьшить баланс на единицу при каждом успешном создании листинга. Есть ли способ уменьшить это значение, не считывая текущее значение?

1 Ответ

0 голосов
/ 16 сентября 2018

В базе данных реального времени Firebase нет атомарных операций увеличения / уменьшения.Вам нужно будет использовать транзакцию , чтобы установить новое значение на основе текущего значения атомарно.

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