Firebase云消息传递实例ID(令牌)

时间:2018-07-10 08:40:09

标签: android firebase firebase-cloud-messaging token

我对客户端生成的实例ID或FCM令牌有疑问。

应该将其隐藏并保密,但是我已经实现了将所有客户端的fcm令牌保存在firebase数据库根目录中名为“ fcm_tokens”的json数组下的方法,并使用key:value对由'userPhoneNumber:FcmToken'组成,因此我可以轻松地向用户发送通知,方法是简单地从他们的订单中获取他们的电话号码,并使用它从Firebase中获取fcm令牌。

我想知道的是,此方法似乎还不错,还是应该为每个用户订阅他们自己的loginPhone号码,以便我可以使用组进行发送。团体过多会引起问题吗?这样,每个组将只有一个用户订阅它,除非我的代码中出现小故障导致多个用户订阅了同一组(电话号码)。

谢谢

1 个答案:

答案 0 :(得分:1)

只需将电话号码替换为fcm令牌中的用户uid

uid:fcm_token

现在,您可以设置规则,以便只有具有其用户ID的用户才能读取令牌。在后端,您将使用admin sdk,它允许对数据库的完全访问。

我还假设您的订单节点中有一个带有电话号码的用户ID参考。

限制fcm令牌访问的规则将是这样的。

"fcm_token" : {
   "$uid" : {
       // add check for string 
       ".write" : "auth.uid == $uid"
       ".read" : "auth.uid == $uid"
    }
}