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

Rus*_*nko 2 android firebase firebase-realtime-database firebase-cloud-messaging

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

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").push().setValue(token)
Run Code Online (Sandbox Code Playgroud)

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

你能给我个建议吗?或者,也许我可以使用Firebase函数来做到这一点,它将删除重复项。

Rus*_*nko 6

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

FirebaseDatabase.getInstance().reference.child("users/${user.uid}/tokens").child(token).setValue(true)
Run Code Online (Sandbox Code Playgroud)

  • 这确实是正确的解决方案。具有“ valueoftoken”:true形式的子节点的节点与Firebase数据库的** set **集合等效。另请参阅http://stackoverflow.com/questions/40656589/firebase-query-if-child-of-child-contains-a-value (2认同)