【问题标题】:How to send FCM messages to a different user如何将 FCM 消息发送给不同的用户
【发布时间】:2021-11-08 01:31:34
【问题描述】:

我可以通过获取其 fcm 令牌将通知发送给单个用户。

考虑像 Instagram 这样的简单案例: 用户(X) 向其他用户(Y) 发送好友请求

现在我想向用户 Y 发送通知,我应该怎么做?

我能想到的唯一方法是将fcm令牌存储到用户数据库中并在此基础上发送,有没有更好的方法?

【问题讨论】:

标签: node.js firebase firebase-cloud-messaging


【解决方案1】:

Firebase 云消息传递具有三种定位消息的方式:

  1. 您向FCM token/device ID 发送消息。

    FCM 令牌标识特定设备上的特定应用,因此您针对的是单个应用实例。

  2. 您向topic发送消息。

    应用实例可以订阅任何主题,因此您可以在此处定位订阅该主题的所有用户。

  3. 您向device group 发送消息。

    您可以将 FCM 令牌分组为最多 20 个的组,然后您可以使用一条消息来定位它们。

在这些选项中,第一个和第三个是迄今为止最常见的。

您会注意到,没有向用户发送消息的选项,因为 FCM 没有用户的概念。用户可以在多个设备上登录同一个应用程序,在这种情况下,他们将拥有多个 FCM 令牌。而且(不太常见,但仍然很常见)多个用户可以在同一设备上登录同一个应用。

您需要在某处(有时称为令牌注册表)设置一个数据库,在其中将 FCM 令牌映射到您希望发送消息的方式。因此,在您的情况下,为每个用户存储令牌是有意义的,而且实际上是非常惯用的。

【讨论】:

  • 感谢您的帮助。我认为这解决了我的一些问题
  • 如何防止向已登录设备但已退出的用户发送通知?在登录/注册时更新/插入令牌并在 singout 或令牌失效时从注册表中删除令牌是否足以满足所有用例?
  • 没有内置任何东西。由于 FCM 对用户一无所知,因此您必须在用户退出时删除令牌。在这里搜索是你的朋友:google.com/…
  • 而且我必须将 fcm 令牌存储在我的服务器中,对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多