云功能可从用户余额中扣除价值

时间:2018-09-16 19:53:34

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

我在正在构建的应用程序中大量使用云功能,希望有人提出如何最好地解决此问题的建议。

我的功能看起来像这样

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 :(得分:2)

Firebase实时数据库中没有原子增量/减量操作。您需要use a transaction以原子方式基于当前值来设置新值。