【问题标题】:Firebase: Send push notification to user on all their devicesFirebase:向所有设备上的用户发送推送通知
【发布时间】:2018-04-22 18:59:09
【问题描述】:

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

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

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

有没有更好的方法来做到这一点?

注意:我知道设备组消息,但我无法使用它,因为我没有应用服务器。我不想在客户端这样做,因为这需要客户端拥有 Google 帐户。

【问题讨论】:

    标签: java android firebase firebase-cloud-messaging


    【解决方案1】:

    是的,实现没问题。

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

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

    有没有更好的方法来做到这一点?

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 2017-01-08
      相关资源
      最近更新 更多