【问题标题】:Is there a way to send email digest to a user when they have unread messages/notifications using firebase cloud functions?当用户使用 Firebase 云功能收到未读消息/通知时,有没有办法向他们发送电子邮件摘要?
【发布时间】:2022-01-30 04:36:29
【问题描述】:

我正在尝试向有未读消息/通知的用户发送电子邮件,但我正在努力寻找一种方法来做到这一点。我正在考虑一个跟踪消息/通知的系统,如果它们有一个小时未读,那么它会向用户发送电子邮件,通知他们这些消息。

我发现了什么: 使用云调度程序,我将能够每小时向有未读通知的用户发送电子邮件。但是,如果用户在一分钟前收到通知,他们仍然会收到一封电子邮件,这对他们来说会很烦人。

使用 firestore onUpdate 随每条消息/通知发送电子邮件通知会更烦人。

有谁知道是否有办法通过跟踪我在顶部描述的通知/消息来做到这一点?还有其他我错过的方法吗?

【问题讨论】:

  • 你找到解决办法了吗?

标签: firebase google-cloud-firestore email-notifications


【解决方案1】:

你为什么不试试

  1. 将云功能设置为每 1-5 分钟运行一次。
  2. 过滤 1 小时及之前未阅读的通知。类似:.where("Read","==",false").where("Date Reminded","<=", currentTime - 60 * 60 * 1000)。请注意,我们在此处使用的日期提醒设置为与创建时创建的日期相同,并在每次发送电子邮件时更新,以避免每分钟发送电子邮件。
  3. 将通知链接到每个用户后,向这些用户发送电子邮件。

当然,一个明显的替代方案是部署一个服务器来监视云 Firestore 并使用 node-schedule 模块发送电子邮件。

【讨论】:

    【解决方案2】:

    您可以使用Cloud Tasks 为每个未读通知启动一项任务,以调用一个函数,该函数会延迟发送该通知的电子邮件。您需要向create and configure the task 编写大量代码,以及接收延迟消息的函数(可能是云函数)。

    如果您想发送带有批量通知的电子邮件,显然您必须实现一些额外的逻辑,以确保每个任务发送一个汇总而不是单独的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 2018-08-05
      • 2020-07-09
      • 1970-01-01
      • 2020-11-22
      • 2018-11-15
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多