为什么FCM会多次更改令牌

时间:2017-08-25 11:48:02

标签: android performance android-layout firebase firebase-cloud-messaging

我从中学到的关于FCM的标志永远不会过期,除非;

  • 该应用删除实例ID
  • 该应用已在新设备上恢复
  • 用户卸载/重新安装应用
  • 用户清除应用数据。

我为用户提供了启用/禁用通知,用户点击停用以及向服务器发送null以及用户启用FirebaseInstanceId.getInstance().getToken()push notifications

的选项

现在有时候,当用户重新启用通知时,它会发送相同的令牌,而有时会更改FCM Token

我的问题是:

  1. 为什么在4个条件中没有任何内容时会更改Token 上面提到的是true,如果它随机改变,那么它有可能在任何时候改变令牌, 并且服务器正在将通知发送到错误的令牌。
  2. 我注意到,如果我清除数据,然后打开应用程序,它会点击令牌 注册并获得相同的标记有时会存储udid 设备或什么机制,它知道它是相同的 设备

1 个答案:

答案 0 :(得分:1)

您的问题。

1)安全原因是改变token的原因。如果你的应用程序有一个静态令牌,如果有人有这个,他们可以有一个控件。生成新令牌后,您必须使用服务器中的用户数据更新它。所以你不会把它发送到错误的令牌。只有当您的用户离线一段时间后才会发生这种情况。

2)FCM生成的令牌是唯一的。使用设备ID 应用ID 生成 FCM 令牌。因此,如果您的更改,其他任何设备都不会获得相同的令牌。出于同样的安全目的,不能公开生成令牌的完整机制。