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

问题描述 投票:0回答:1

我在我正在构建的应用程序中使用云功能,并且想要一些建议如何最好地解决这个问题。

我的功能看起来像这样

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
  })
})

每次成功创建列表时,我需要一种方法将余额减少一。有没有办法让我减少这个值而不必读取当前值?

firebase firebase-realtime-database google-cloud-platform google-cloud-functions
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.