Firebase在特定时间发送通知



我有一个使用Firebase进行云提醒的任务。我的DB中有一个提醒的时间印章。因此,我需要在当时发送通知。

在Firebase测试控制台中,有一个选项可以在某些时间发送通知,但是我在MessagingOptions中没有看到此选项。

那么,使用Firebase功能插入云提醒的最佳方法是什么? 另外:完全可以更改或删除提醒时间。

取决于项目范围。

  • 例如,如果您的项目仅适用于一种类型的移动客户端,则仅是Android。然后在设备上设置警报,然后使用firebase数据库作为数据持久性,以使用户在安装和设备之间具有完美的体验。

  • 如果您的项目还必须用于Web,并将电子邮件与通知一起发送,则您必须安排CRON工作。这里唯一的问题是警报必须有多准确。这是重要的细节,因为如果需要确切的警报,您将必须每分钟安排一个Cronjob,浪费令人难以置信的浪费,请查询数据库,因此通常会很快消耗您的使用配额。此外,移动设备在此期间具有节能模式,同时尚未完全活跃,因此系统可以延迟推送通知,直到下一个维护窗口。我的建议是将警报缩小到30或15分钟的窗口。因此,您可以安排将数据库查询在此时间段内的对象的cronjobs。

    1. 用于安排CRON工作,建议您阅读此Firebase博客文章

    2. 用于使用FCM发送推送通知,我建议在GitHub上检查功能样本

    3. 最适合从功能开始的是此视频

    4. 以及有关您的数据库结构,请参见下面的示例

{
  "user_alarms": {
    "uid1": {
      "pushkey1": {
        "full_object": "goes here"
      },
      "pushkey2": {
        "full_object": "goes here"
      }
    },
    "uid2": {
      "pushkey3": {
        "full_object": "goes here"
      },
      "pushkey4": {
        "full_object": "goes here"
      }
    }
  },
  "alarms": {
    "pushkey1": {
      "reduced_object": "mainly_the_time"
    },
    "pushkey4": {
      "reduced_object": "mainly_the_time"
    }
  }
}

user_alarms节点包含每个用户警报,这样用户可以看到所有设置的警报。节点alarms是原始节点的典型化,并且是每个cron作业中要查询的节点。它包含一个更简单的对象,只有为即将发出的警报(主要是触发时间(执行查询所需的内容。为了在发送FCM推送后提高性能,应删除相应的对象。

最简单的解决方案:

  1. 找到功能的URL。例如https://us-central1-myappsucks.cloudfunctions.net/myfunctionsuckstoo

  2. 使用CRON服务创建Schedulea任务。我使用cron-job.org。创建帐户,转到cronjobs选项卡插入您的URL和时间安排。

  3. 保存并完成。

相关内容

  • 没有找到相关文章

最新更新