首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态发送FCM推送通知?

如何动态发送FCM推送通知?
EN

Stack Overflow用户
提问于 2021-07-15 13:45:50
回答 2查看 198关注 0票数 1

作为firebase,FCM会立即向Android/IOS设备发送推送通知。是否可以根据用户如何设置事件提醒时间来安排推送通知,就像在Google日历提醒中一样?

例如,用户A设置事件A在10分钟前提醒。用户B将事件B设置为在1分钟前提醒。

我的一种解决方案是每分钟运行一次Cron Job并触发推送通知,但我认为如果有更多的用户,这样做效率不高。有没有办法在Firebase中安排推送通知?

EN

回答 2

Stack Overflow用户

发布于 2021-07-15 14:01:57

您可以创建一个触发FCM通知的函数,然后使用Google Cloud Tasks使用相关负载来触发该函数。要将其分解为简单的步骤:

1.在用户设置事件时添加云任务:

代码语言:javascript
复制
exports.addEvent = functions.https.onCall((data, context) => {
  // add data in database
  // add a Google Cloud Task
  return

  // Alternatively, you can add the event directly to database
  // and then use Firebase/Realtime DB triggers for Cloud Functions
});

您可以传入云任务的触发时长。如果您的事件发生在10小时内,则只需传递36000秒作为参数。10小时后,Cloud任务将触发您发送FCM通知的功能。

2.处理提醒并发送通知:

代码语言:javascript
复制
exports.sendNotifications = functions.https.onRequest((req, res) => {
  // read payload from req.body
  // process and send FCM notification
});

您应该在Google Cloud Task中添加您的sendNotifications函数的URL。您可以在文档中阅读有关creating HTTP target tasks的更多信息。

总结一下流程:

  1. User creates and event
  2. 云函数随后使用适当的duration
  3. Cloud任务创建一个noticiations.

  • 触发您的sendNotifications函数,该函数随后使用FCM触发FCM
票数 0
EN

Stack Overflow用户

发布于 2021-07-15 14:23:19

您可以使用firebase云消息传递中的调度函数来调度您的FCM推送通知

参考:https://firebase.google.com/docs/functions/schedule-functions?hl=en

您可以使用计划功能:

代码语言:javascript
复制
functions.pubsub.schedule().onRun()

这将在cloudscheduler中添加主题,您可以定义运行该主题的频率。

但问题是,firebase只允许你在按需付费计划(Blaze计划)上使用它。

在我的例子中,我做了以下工作:

  1. 通过在mysql数据库表中插入device_token和何时发送来管理队列。
  2. 编写了一个守护程序,用于查找mysql条目并在所需的持续时间内运行FCM推送通知调用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68388542

复制
相关文章

相似问题

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