gpt4 book ai didi

Firebase 在特定时间发送通知

转载 作者:行者123 更新时间:2023-12-04 13:22:29 25 4
gpt4 key购买 nike

我有一项任务是使用 Firebase 进行云提醒。我的数据库中有一个提醒时间戳。所以我需要在那个时候发送通知。

在 Firebase 测试控制台中有一个在特定时间发送通知的选项,但我在 MessagingOptions 中没有看到这个选项.

那么使用 Firebase 函数实现云提醒的最佳方法是什么?
另外:提醒时间可以更改或删除。

最佳答案

取决于你的项目范围。

  • 例如,如果您的项目仅适用于一种类型的移动客户端,则仅适用于 Android。然后在设备上设置警报,并使用 Firebase 数据库作为数据持久化,让用户在安装和设备之间拥有完美的体验。
  • 如果您的项目还必须用于 Web,并且将电子邮件与通知一起发送,那么您将必须安排一个 cron 作业。这里唯一的问题是警报必须有多准确。这是重要的细节,因为如果警报需要准确,您将不得不每分钟安排一个 cronjob,非常浪费,如此频繁地查询数据库会很快消耗您的使用配额。此外,移动设备的节能模式在此期间并不完全处于事件状态,因此系统可以将推送通知延迟到下一个维护窗口。我的建议是将警报缩小到 30 或 15 分钟的窗口。因此,您可以安排将在该时间段内查询数据库中的对象的 cronjob。
  • 对于安排 cron 作业,我建议您阅读此 Firebase blog post
  • 对于使用 FCM 发送推送通知,我建议检查 Functions samples on Github
  • 最好从函数开始是 this video
  • 对于您的数据库结构,请参见下面的示例


  • {
    "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 推送后提高性能,应删除相应的对象。

    关于Firebase 在特定时间发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48686423/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com