FCM 推送通知到将在客户端过滤的所有设备



好吧,我知道这个问题可能听起来很愚蠢。我正在构建一个应用程序,其中有发布帖子的页面,用户可以订阅/取消订阅这些页面。

这里的目标是找到一种方法,在发布新帖子时发送通知,但只向订阅用户发送通知。我想我可以通过在Firebase数据库上的"帖子"引用更新时向应用程序上的所有设备发送推送通知来做到这一点,然后选择如果用户已订阅(在客户端)是否显示此通知

这是个好主意吗?如果是,我该如何做到这一点?

这是个好主意吗?

是的,这个想法还不错。但是,在许多情况下,会执行要在客户端中显示的筛选通知。

如果是,我该如何做到这一点?

我希望您已经拥有使用 Firebase 身份验证或任何其他服务器端身份验证的登录或身份验证系统。当您拥有此功能时,您可能已经考虑过在用户在您的应用中注册并将其保存在您的 Firebase 数据库中时,向您的服务器或 Firebase 发送推送注册 ID。

现在,当需要发送推送通知时,您计划将推送通知发送到所有已注册的设备,并且您希望过滤通知将显示或也不显示在客户端。

这可以通过在客户端保留一个标志来实现,例如具有最后一个帖子的 id 或标签的SharedPreference。如果你每个帖子都有一个增量ID,那么实现起来会容易得多。当用户启动您的应用程序时,它会从您的 firebase 数据库中提取帖子,正如我所想到的那样。只需将帖子的最新 id 保存在您的SharedPreference中,当收到推送时,将推送通知附带的帖子 id 与本地存储的最新 id 相匹配。

如果通过推送通知收到的 ID 大于存储在SharedPreference中的 ID,您将在系统托盘中显示通知,否则不会显示通知。

希望有帮助。

如果您在数据库中维护订阅用户列表,则可以仅向订阅用户推送通知 FCM 令牌

您的方法是正确的,您需要做的是为用户订阅该特定组/表时插入的所有页面维护不同的数据库表。

因此,假设当一个人订阅包含体育信息的页面时,您将他添加到该组中。稍后,当您发送与"体育"相关的更新/通知时,您只会将这些推送通知发送到"体育"表中的用户令牌。

这样,只有相关订阅者才会收到这些推送通知。

最新更新