Swift-FireStore / FCM(Firebase云消息传递)

时间:2020-10-03 22:08:36

标签: firebase firebase-cloud-messaging

我已将Firebase Cloud Messaging集成到我的应用程序中。一团糟后,我有点了解它如何运作的前提。因此,结果,我对代码进行了结构化,以便在用户注册时存储FCM令牌。创建两个帐户后,我意识到用户的两个FCM令牌都相同。

在线查看并解决了此问题,现在我可以在启动时刷新令牌,并在用户最初注册时仍附加新的FCM令牌。

现在,我问一个问题-用户创建了一个fcmToken字段(我可以在我的代码中引用它),但是,由于每次启动该令牌时都会在启动时生成一个新的令牌( s)对每个用户存储没用?还是可以使用fcmToken推送给特定用户?

我已经看过网上了,但似乎找不到答案。

2 个答案:

答案 0 :(得分:0)

FCM令牌不能唯一地标识单个最终用户。它们标识特定设备上应用程序的特定安装。使用该令牌发送邮件时,谁登录到应用程序(或是否有人登录)都没有关系-应用程序仍会收到该令牌,并需要弄清楚该怎么做。给定用户的登录状态,由您决定如何处理该消息。如果您希望自己的应用可以有多个用户在一个设备上共享一个应用,那么您可能需要在有效负载中发送一些信息,以确定该消息的发件人。

答案 1 :(得分:0)

@doug很好的答案,但是当人们共享设备时,存在一个常见的实现问题,因此请添加警告,例如:通常只有最后登录的用户才能收到推送通知,否则他可以看到来自该用户的消息之前已登录。您的后端不仅应存储用户已登录的所有设备,还应存储最后一个活动用户所在的每个设备,并在发送推送时进行检查。退出时是否接受推送也是一个常见的问题。