当用户验证他的邮件地址时,我正在使用云功能在一个向用户分配优惠券的优惠券系统上工作。
对于我的设计,我有一个/coupons集合,预装了很多优惠券。
用户将验证他调用HTTP函数的邮件地址,为此,我想将优惠券分配给从优惠券集合中选择一张优惠券的用户,在优惠券集合上查询名为"userId“的字段。
查询样本:
const pickOne = () => {
return firestore
.collection('coupons')
.where('userId', "==", 'none')
.limit(1)
}
我知道萤火虫交易。
我的想法(如果可能的话)是调用pickOne作为transaction ()函数的参数,并在其上写入值"userId“,然后关闭并提交事务。
我的怀疑与锁定系统有关:是否有可能避免并发用户可能拥有相同的优惠券?
https://stackoverflow.com/questions/70824893
复制相似问题