Firebase:在所有设备上向用户发送推送通知

时间:2018-04-22 18:59:10

标签: java android firebase firebase-cloud-messaging

我正在构建一个类似于Instagram的应用程序。用户上传帖子,其他人可以喜欢。当人们喜欢这篇文章时,我希望帖子作者使用FCM(Firebase云消息传递)获取推送通知。

我的问题是refreshToken(使用FirebaseInstanceId.getInstance().getToken();生成)是特定于设备的。因此,如果同一用户从其他设备登录应用程序,我想确保向所有设备发送推送通知。所以这是我提出的解决方案,我想知道它是否是正确的方法:

每次用户登录设备时,我都会将refreshToken存储到数据库中,当我想生成推送通知时,我可以遍历所有refreshTokens并向所有人发送推送通知那些设备。

有没有更好的方法来实现这一目标?

注意:我知道设备组消息,我无法使用它,因为我没有应用服务器。而且我不想在客户端进行此操作,因为这需要客户拥有Google帐户。

1 个答案:

答案 0 :(得分:0)

是的,实施没问题。

  

每次用户登录设备时,我都会将refreshToken存储到设备中   数据库。

每次用户从设备登录应用程序时,实际上不需要发送设备推送注册ID(在您的情况下为refreshToken)。只有当服务器尚不知道设备(即新设备)时,才需要从设备发送推送注册ID(即refreshToken)。

  

有没有更好的方法来实现这一目标?

我认为不是。这是您实施的完美方式。但是,我们可能总是会想到几个优化点,例如,跟踪哪些设备已注销,因此您无需再将推送通知发送到该设备。因此,在从设备注销的情况下,从该设备向服务器发送另一个无效的refreshToken请求,以便它不会获得任何进一步的推送通知。这是对当前实施的改进。