如何在使用 firebase 的电子商务应用程序中的预计交货时间结束时通知店主

How to notify a store owner when the estimated delivery time is over in an e-commerce app using firebase

我需要一些关于如何处理基于 firebase 的多供应商电子商务应用程序中的功能的想法。我想在预计交货时间结束时向店主发送通知。

当用户从商店下订单时,订单信息中将添加大约 50 分钟之类的预估时间。现在,如果超过 50 分钟且订单状态仍为待处理,我必须为所有者安排通知,所有者将收到通知。

我没有任何代码可以附加,因为我仍在考虑该方法。我的想法是,每个店主都将订阅一个主题作为 storeId,或者我可以使用店主的令牌发送通知。所以只有店主会收到通知。

但是我应该为每个订单使用云函数安排时间还是有其他方法来完成这个?

But should I schedule the time using a cloud function for every orders or there are other ways to accomplish this?

通知发送应该由 back-end 触发,而 Cloud Functions 显然是最方便的。您可以设置自己的服务器来执行此操作,但使用像 Cloud Functions 这样的无服务器平台要容易得多。

有两种可能的选择:

  • 使用 scheduled Cloud Function 检查,每分钟 ,如果有订单超过预计交货时间,如果是,则发送通知。这种方法的缺点是: 每分钟触发一个 Cloud Function(但有 2M invocations/month 的慷慨免费套餐);类似地,每分钟执行一个 Firestore 查询,如果查询 returns 什么都没有,则至少需要一次读取(同样,有 50K 的慷慨免费层 reads/day);最后,您不能 运行 以高于每分钟一次的频率安排 Cloud Function(但在您的情况下,这不是真正的问题)。
  • 对于每个订单,在恰好 50 分钟内将 Cloud Functions 安排到 运行,如 this article 标题为“如何在未来将 Cloud Functions 安排到 运行 中所述Cloud Tasks(构建 Firestore 文档 TTL)”。缺点:实现比简单的预定 Cloud Function 方法稍微复杂一些,但您避免了这种方法的缺点,如上所列。