【发布时间】:2022-01-24 02:10:24
【问题描述】:
我正在使用优惠券系统上的云功能,当用户验证他的邮件地址时,该优惠券会分配给用户。
对于我的设计,我有一个 /coupons 集合,其中预装了很多优惠券。
用户验证他的邮件地址调用 HTTP firebase 函数,为此我想将优惠券分配给用户从优惠券集合中选择一个,通过优惠券集合上名为“userId”的字段查询。
查询示例:
const pickOne = () => {
return firestore
.collection('coupons')
.where('userId', "==", 'none')
.limit(1)
}
我知道 Firestore 交易。
我的想法(如果可能的话)是调用 pickOne 作为事务 get() 函数的参数,并在其上写入值“userId”,然后关闭并提交事务。
我的疑问与锁定系统有关:是否可以避免并发用户可能拥有相同的优惠券?
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions