Firebase的安全规则失败

Firebase的安全规则失败,firebase,firebasesimplelogin,Firebase,Firebasesimplelogin,我正在尝试添加安全规则,以便用户只能编辑自己的配置文件: "users": { "$user_id": { ".write": "$user_id == auth.uid", 这条规则在模拟器中通过,但在现实生活中失败。我认为可能是内部正在对路径进行编码,即simplelogin:1被转换为simplelogin%3A1,因此我尝试使用replace来匹配这种情况,但仍然不起作用 ".write": "$user_id == auth.uid.repla

我正在尝试添加安全规则,以便用户只能编辑自己的配置文件:

  "users": {

    "$user_id": {

      ".write": "$user_id == auth.uid",
这条规则在模拟器中通过,但在现实生活中失败。我认为可能是内部正在对路径进行编码,即simplelogin:1被转换为simplelogin%3A1,因此我尝试使用replace来匹配这种情况,但仍然不起作用

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

你知道我做错了什么吗?

我也有同样的症状,经过一些调试后,我意识到规则没有问题,真正的问题是我在客户端代码中使用的路径

因此,我使用的规则与文档中的规则非常相似:

{
"rules": {
  "users": {
    "$uid": {
      ".write": "$uid === auth.uid"
    }
  }
}
如果我像这样访问路径:

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

工作正常。

无需对uid进行编码,我使用。写入:auth!=null&&auth.uid==$uid,没有问题。您的规则也与上的文档完全一致。你说它不起作用是什么意思?