我遇到云功能问题。
我正在预订系统。 当管理员接受预订时,我会在客户端进行此呼叫:
reservationRef.update({
handled: true,
lastHandledBy: AUTH.currentUser.uid,
timestamp: TIMESTAMP
})
以下是整个预订的样子:
roomId: number
address: string
name: string
tel: string
message: string
email: string
from: number
to: number
timestamp: date
lastHandledBy: string
handled: boolean
adults: number
children: number
在Cloud Functions中,我有一个在更新预订时触发的功能,因此我可以向用户发送确认电子邮件。它看起来像这样:
exports.reservationChanged = reservationRef
.onUpdate(({before, after}, {params: {reservationId}}) => {
before = before.data()
after = after.data()
// Reservation accepted
if (!before.handled && after.handled) {
return email.reservationAccepted(reservationId, after)
}
}
出于某种原因,它会被触发两次并发送两封电子邮件,我不知道为什么。我使用简单的.update()
我做错了什么?
由于
答案 0 :(得分:0)
问题解决了。我忘了部署我的新代码了。在旧版本中,我在客户端上使用了2个.set()
方法而不是一个.update()
来更新预留,从而在云函数中导致单独的.onUpdate
触发。