Firebase数据库更好地保存FCM令牌以避免重复

时间:2018-01-03 11:48:14

标签: android firebase firebase-realtime-database firebase-cloud-messaging

我需要将FCM令牌保存到Firebase数据库以发送通知。有没有更好的方法呢? 现在我这样做:

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").push().setValue(token)

这样,每次按下令牌时,它都有新的唯一ID,并且可以具有相同的令牌。

你能给我一个建议吗?或者我可以使用firebase函数来删除重复项。

2 个答案:

答案 0 :(得分:4)

我通过使用另一种保存令牌的方式解决了这个问题,现在令牌保存就像记录的密钥一样。

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").child(token).setValue(true)

答案 1 :(得分:0)

我会建议不要在数据库中保存该信息

考虑到:

  

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

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

Source

FirebaseInstanceId可能会被视为 PID (个人身份识别数据),因此请对其进行处理 - 请记住,如果您在欧盟开展业务,2018年3月新颁布的GDPR法规

相反,我会使用令牌在需要时向用户注册推送通知并将其发送到您的FCM / GCM服务器。