首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >消防基地在特定时间发出通知

消防基地在特定时间发出通知
EN

Stack Overflow用户
提问于 2018-02-08 13:17:24
回答 2查看 5.9K关注 0票数 4

我有一个任务要做云提醒使用Firebase。我的数据库里有一个提醒的时间戳。所以我需要在那个时候发出通知。

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

那么,使用Firebase函数实现云提醒的最佳方式是什么呢?此外:提醒的时间可以更改或移除。

EN

回答 2

Stack Overflow用户

发布于 2018-02-08 13:39:09

取决于项目的范围。

  • 例如,如果您的项目只针对1种类型的移动客户端,则只能使用Android。然后在设备上设置警报,并使用Firebase数据库作为数据持久性,以便用户在安装和设备之间有完美的体验。
  • 如果你的项目也必须是为网络,并发送电子邮件与通知,那么你将不得不安排一个cron的工作。这里唯一的问题是警报有多准确。这是重要的细节,因为如果警报需要准确,那么您将不得不安排每分钟一个任务,这是非常浪费的,查询数据库太频繁了,会很快地消耗您的使用配额。此外,移动设备具有节能模式,同时也没有完全激活,因此系统可以将推送通知延迟到下一个维护窗口。我的建议是把闹钟缩小到30或15分钟的窗口。因此,您可以调度cron作业,以便在这段时间内查询数据库中的对象。
代码语言:javascript
复制
1. For scheduling a cron job I recommend you reading this [Firebase blog post](https://firebase.googleblog.com/2019/04/schedule-cloud-functions-firebase-cron.html)
2. For sending the push notification using FCM I recommend checking the [Functions samples on Github](https://github.com/firebase/functions-samples)
3. The best for starting with Functions is [this video](https://www.youtube.com/watch?v=EvV9Vk9iOCQ)
4. And for your database structure, please see example below

代码语言:javascript
复制
{
  "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推送后的性能,应该删除相应的对象。

票数 3
EN

Stack Overflow用户

发布于 2018-10-05 12:15:49

最简单的解决办法:

  1. 查找函数的URL。eg https://us-central1-myappsucks.cloudfunctions.net/myfunctionsuckstoo
  2. 使用cron服务创建schedulea任务。我用cron-job.org。创建帐户,转到cronjobs选项卡,插入您的url和计时。
  3. 保存并完成。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48686423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档