首页 文章

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

提问于
浏览
0

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

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

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

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

注意:我知道Device Group Messaging,我无法使用它,因为我没有应用服务器 . 我不想在客户端进行,因为这需要客户拥有Google帐户 .

1 回答

  • 0

    是的,实施是可以的 .

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

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

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

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

相关问题