有没有一种方法可以在我的网站上设置一个由Firebase强制执行的结账计时器?
假设我还有3件产品,如果客户在购物车中添加了2件产品并点击结账,则会向Firebase发送一个请求,将“剩余库存”减少到1件。我如何在服务器端设置一个计时器,以强制执行我给予客户结账的15分钟,以确保如果客户只是关闭选项卡,Firebase会在15分钟到期后将这些项目添加回“剩余库存”。
我考虑过使用云函数,但每次有人买东西时,该函数将运行15分钟,因为活动计时器会计入计算时间,这将产生巨大的账单。
我是否可以创建一个自定义身份验证令牌,该令牌将在15分钟内到期,并与“预订”相关联(通过类似预订列表的东西),然后在任何新客户端上查询,该查询将使用 * 活动 * 自定义令牌减少“剩余库存”量,这种方式显示不包括过期令牌的“库存”量?
但这可能会产生问题,因为任何用户都可以读取身份验证令牌列表……
或者有一个非常简单的解决方案,我只是没有看到?
理想的情况是类似于与产品“预订”链接的身份验证令牌,因为用户随后将无法访问该链接并完成购买,因为令牌将过期。但我不知道是否存在这样的东西......
1条答案
按热度按时间2vuwiymt1#
我不建议将其视为一个计时器,而是建议将时间存储到数据库中,例如在
heldUntil
字段中。客户端仍然可以使用这个值来显示一个倒计时计时器,但是信息本身是静态的。所以如果
heldUntil
在当前时间之前,你可以很容易地编程逻辑来忽略对项目的保持。