Firebase云消息传递(FCM)令牌是否独一无二?

时间:2017-04-25 14:56:04

标签: firebase firebase-cloud-messaging

我在firebase文档中找不到任何地方,表示收到的令牌是唯一的。如果有人能指出我这样的地方,我将不胜感激。主要问题 - 我应该在数据库中为这些令牌制定唯一约束。 THX!

3 个答案:

答案 0 :(得分:4)

根据文件记录,它们是唯一的,但您无法将它们绑定到特定设备,因为它们可能会发生变化。

Documentation for IOS

  

注册令牌可能会在以下情况下发生变化:

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

Documentation for Android

  

注册令牌可能会在以下情况下发生变化:

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

答案 1 :(得分:1)

当我搜索Are Google Cloud Messaging tokens unique时,第一个结果是this page from the documentation,其中包含:{/ p>

  

要验证他们是否可以发送和接收消息,客户端应用必须向GCM注册。在此过程中,客户端获取唯一的注册令牌......

Firebase云消息传递实例ID令牌可唯一标识应用的实例。它们是全球独一无二的。

是否应将数据库中的列标记为唯一,具体取决于您对该列的使用情况。正如你自己的问题:如果在这张表中有两次令牌,会发生什么坏事?标记列是否唯一可以防止坏事发生?

答案 2 :(得分:1)

根据我的经验,我注意到 FCM 令牌在以下三种情况下发生了变化:-

  1. 卸载或重新安装应用程序时。
  2. 当应用程序的数据被清除时。
  3. 在新设备上安装应用程序时。

注意:- 无法保持 FCM 令牌相同。