在创建主题之前或订阅之前发送通知 FCM

Posted

技术标签:

【中文标题】在创建主题之前或订阅之前发送通知 FCM【英文标题】:Sent notification FCM before topic was created or before subscription 【发布时间】:2018-04-11 10:43:14 【问题描述】:

场景:向主题“X”发送通知,过期时间为 4 周。 什么时候发生:

    主题不存在,没有人订阅。然后一小时后, 有人订阅它。此设备会收到此通知吗? 主题存在或存在(有一个订阅者,但他没有订阅),现在他在发送一小时后再次订阅。它会得到吗? 一个或多个设备正在订阅主题 X。他们都知道了。与往常一样,在发送后一小时后,一个新设备现在订阅了它。它会得到它吗?

有些东西对所有这些答案都说“不”,但在 fcm 文档中找到该答案时遇到问题。

如果我猜对了,有什么办法可以得到以前的通知?假设对业务来说这很重要,通知只存在一个小时,但在此期间他可以更改订阅,回来后,他想收到该通知。

【问题讨论】:

【参考方案1】:

当您向其发送消息或有人订阅它们时,会自动创建 FCM 主题。

设备只接收订阅后发送到主题的消息。它不会收到未订阅时发送到该主题的消息。

由于在所有三个问题中,消息都会在设备未订阅时发送到主题,因此它不会收到这些消息。

对于这种类型的场景,您需要使用持久性数据库,而不是瞬态消息传递机制。例如。您可以将每个主题的消息存储在数据库中,并在订阅该主题时授予设备访问该数据库的权限。

【讨论】:

好的,谢谢。完全有道理;)但不确定。感谢您的回答!

以上是关于在创建主题之前或订阅之前发送通知 FCM的主要内容,如果未能解决你的问题,请参考以下文章

向订阅主题的所有用户推送通知,使用 FCM Firebase 的登录用户除外

如何不向不想接收推送的用户发送FCM?

Firestore 更改后使用 FCM 发送推送通知? [复制]

Flutter 按主题使用 FCM 推送通知

FCM - 发送到主题和“未注册”错误

在一个用户段中,FCM可以向其发送通知的设备是否有限制?