我对客户端生成的实例ID或FCM令牌有疑问。
应该将其隐藏并保密,但是我已经实现了将所有客户端的fcm令牌保存在firebase数据库根目录中名为“ fcm_tokens”的json数组下的方法,并使用key:value对由'userPhoneNumber:FcmToken'组成,因此我可以轻松地向用户发送通知,方法是简单地从他们的订单中获取他们的电话号码,并使用它从Firebase中获取fcm令牌。
我想知道的是,此方法似乎还不错,还是应该为每个用户订阅他们自己的loginPhone号码,以便我可以使用组进行发送。团体过多会引起问题吗?这样,每个组将只有一个用户订阅它,除非我的代码中出现小故障导致多个用户订阅了同一组(电话号码)。
谢谢
答案 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"
}
}