如何安排推送通知以响应本机博览会?

时间:2019-09-24 13:58:23

标签: javascript firebase react-native firebase-cloud-messaging expo

我正在尝试在预定的时间向用户发送推送通知。假设他们为活动设置了日期,并且希望在30分钟之前收到通知,也就是我想向他们发送通知。我正在使用firebase作为后端,并且该项目是使用expo构建的。

我很好奇,如果我使用Firebase云消息传递,我将如何使用expo的通知系统,因为它说我需要来自firebase的单独权限(我已经有每个用户的expo令牌)。我已经研究了节点cron / schedule以及react-native推送通知,但是我不确定哪一个是最佳解决方案以及在哪里部署该解决方案(例如运行云功能)。

我假设我需要某种类型的函数,该函数需要令牌,消息正文,标题和日期,然后对其进行设置以将其调度到服务器或本地。然后,当他们按下按钮以接收通知时,将调用该函数。他们还可以更改事件的日期,因此,如果用户这样做,则需要更改日期。

任何建议都将不胜感激,因为我已经进行了数天的研究,但仍不确定最佳方法。

1 个答案:

答案 0 :(得分:2)

一种可能的方法:

  1. 在您的后端中,安排每分钟(或每15秒)运行一次cron作业,并对照数据库检查哪些事件的开始时间在接下来的30分钟之内。

  2. 拥有events后,找出注册这些事件的用户并收集其用户ID。

  3. 正如您提到的那样,您已经存储了令牌,因此我假设这些令牌针对用户ID存在于某些表中。 (例如user-idtokens的映射)。查找此表以获取这些用户的令牌。

  4. 准备通知payload并调用firebase消息传递以发送针对令牌的通知。例如,此时您可以从Firebase SDK调用sendToDevice()函数:firebase.messaging().sendToDevice(tokens, payload);

现在,您可以在后端(例如Nodejs)中实现这些步骤,也可以为此部署云功能并为此云功能设置scheduling

让我知道您是否需要其他帮助!