2017-07-29 162 views
1

我对我的应用中实施Firebase云消息传递存在一些怀疑。何时为用户注册FCM令牌

我的应用程序是一个类似于whatsappfacebook messenger的聊天室。现在每次有人登录时,我都会注册令牌并将其与用户关联起来。所以如果有人想与用户聊天,那么应用程序会在Db中搜索用户ID,然后在那里获得他的令牌。

我可以注册设备令牌,但我不确定何时应该这样做。

在我的聊天用户中通过邮件/密码注册进行注册,并且用户可能会在其他设备上登录。

例如: 用户Frehley使用银河8并且能够聊天以及使用该令牌在他的设备接收通知。但让我们说,他在另一个设备中。我需要再次注册令牌并将其与他联系对吗?

因此,也许我错了,但注册令牌的最佳时刻是每次用户登录并将其替换到数据库中。对?

现在,假设两个用户(Frehley和Stanley)使用相同的Galaxy 8进行登录,每次登录时令牌会不同,或者每个设备的令牌都相同?

回答

1

这一切都依赖于用例:

  • 如果同一用户登录到两个设备,你希望他们能够同时接收设备上的通知?如果是这样,则需要为每个用户存储多个设备令牌,并将通知发送给目标用户的每个令牌。你也可以use a device group to identify the devices for a single user。从这些文档:

    借助设备组消息,您可以将单条消息发送到在属于组的设备上运行的应用的多个实例。通常情况下,“组”是指一组如果你希望用户只接收他们上次使用设备上的通知属于单个用户

  • 不同的设备,你必须要关联的对单个令牌与每个用户并覆盖,当他们在设备上启动应用程序。不是说这不一定是他们登录时的情况,但更有可能是应用程序detects that they're authenticated

  • 如果不同的用户在同一台​​设备上使用相同的应用程序(使用相同的设备配置文件),则可能希望停止发送到设备令牌。最可靠的方法是去除先前用户和令牌之间的关联,但这可能需要您保持从令牌到UID的映射。当用户注销时,更简单的方法是delete the device token。然后新用户登录,他们将获得新的令牌。