安全规则与Firebase失败

时间:2014-10-03 12:33:10

标签: firebase firebasesimplelogin

我尝试添加安全规则,以便用户只能编辑自己的个人资料:

  "users": {

    "$user_id": {

      ".write": "$user_id == auth.uid",

此规则在模拟器中传递但在现实生活中失败。我认为可能是内部路径正在被编码,即simplelogin:1被转换为simplelogin%3A1所以我尝试使用replace来匹配这种情况,但仍然无法工作。

      ".write": "$user_id == auth.uid.replace(':', '%3A')",

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

我遇到了相同症状的问题,经过一些调试我发现规则还可以,而真正的问题是我在客户端代码中使用的路径。

所以我使用的规则与文档中的规则非常类似:

{
"rules": {
  "users": {
    "$uid": {
      ".write": "$uid === auth.uid"
    }
  }
}

而且,如果我访问这样的路径:

ref = new Firebase('https://myfirebase.firebaseio.com/');
.
.
.
ref.child('users/' + uid).set({...

工作正常。