我在数据库的验证部分单独存储用户名。只有用户名,这样用户在注册时,可以在注册前输入用户名并查看用户名是否可用。现在的规则是 ".read": true ,这样基本上任何人都可以轻松访问数据库中的所有用户名。我想阻止这种情况,但我不知道该怎么做,因为我不能使用 auth != null 规则,因为尚未创建用户。
我唯一的想法是只允许读取请求的用户名,即某些东西
firebase.database().ref('Validations/Usernames')
.orderByChild('name')
.equalTo(username)
.once('value')
.then(snapshot => ....
然后使用这样的规则:
"$name": {
".read": "query.equalTo == $name"
}
即允许只读从客户端检查的用户名。现在,这失败了,因为对于所有其他人,它使用 orderByChild 进行检查,它无权访问这些。
是否有一些类似的方法可以只读取请求从客户端读取的值?或者,在他创建帐户之前,我应该采用其他完全不同的方式进行用户名验证?
烙印99
相关分类