Firebase云在一项功能中支持多个事务?

时间:2018-11-29 23:41:05

标签: firebase google-cloud-functions

我正在尝试创建一个云功能,一次执行两个事务。

我尝试执行以下操作,仅执行第一个事务...当添加第二个事务时,它不起作用,也没有错误。

功能:

exports.followIncrement = functions.database
.ref("/followers/{userId}").onCreate((snapshot, context) => {
  const userId = context.params.userId;
  const currentUserUid = Object.keys(snapshot.val())[0];

  console.log(currentUserUid);
  console.log(userId);

  var followerCount = 
admin.database().ref('users').child(userId).child('followerCount')
  var followingCount = 
admin.database().ref('users').child(currentUserUid).child('followingCount')

return followerCount.transaction((currentCount) => {
  return currentCount || 0 + 1;
})
.then(() => {
  return followingCount.transaction((currentCount) => {
      return currentCount || 0 + 1;
    })
  })
})

我感谢所有反馈! 干杯。

1 个答案:

答案 0 :(得分:0)

如果您执行以下操作会怎样:

return followerCount.transaction((currentCount) => {
  return currentCount || 0 + 1;
})
.then((count) => {
  if (count.committed) {
    return followingCount.transaction((currentCount) => {
      return currentCount || 0 + 1;
    })
  }
})