我尝试添加安全规则,以便用户只能编辑自己的个人资料:
"users": {
"$user_id": {
".write": "$user_id == auth.uid",
此规则在模拟器中传递但在现实生活中失败。我认为可能是内部路径正在被编码,即simplelogin:1被转换为simplelogin%3A1所以我尝试使用replace来匹配这种情况,但仍然无法工作。
".write": "$user_id == auth.uid.replace(':', '%3A')",
任何想法我做错了什么?
答案 0 :(得分:0)
我遇到了相同症状的问题,经过一些调试我发现规则还可以,而真正的问题是我在客户端代码中使用的路径。
所以我使用的规则与文档中的规则非常类似:
{
"rules": {
"users": {
"$uid": {
".write": "$uid === auth.uid"
}
}
}
而且,如果我访问这样的路径:
ref = new Firebase('https://myfirebase.firebaseio.com/');
.
.
.
ref.child('users/' + uid).set({...
工作正常。