FireBase规则无法使用auth.uid

时间:2017-08-11 08:02:15

标签: firebase firebase-realtime-database rules

如果$ uid等于auth.uid,我正在尝试设置Firebase规则,该规则将授予对R / W的访问权限。

这是我的数据库结构示例:

enter image description here

我尝试过的第一条规则配置:

{
"rules": {
      "$uid" : {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
}

我也尝试过这种方式(包括root的路径):

{
    "rules": {
        "AppName-46ed8":{
            "$uid" : {
                ".read": "$uid === auth.uid",
                ".write": "$uid === auth.uid"
                    }
                }
            }
}

我遵循Firebase说明,此规则通过了模拟器。

当这些规则到位时,我没有从Firebase获取带有快照的实例。

如果我使用默认的“不安全”规则,如下所示,一切正常(但可能会受到黑客攻击):

    {
    "rules": {
        ".read": true, ".write":true
             }
     }

请建议。

1 个答案:

答案 0 :(得分:2)

遵循它应该起作用:

这些规则需要身份验证

仅允许经过身份验证的内容所有者访问其数据

{
  "rules": {
    ".read": "auth != false",
    ".write": "auth != false",
    "Users": {
      "$id":{
        ".read": "auth.uid == $id",
        ".write": "auth.uid == $id",
      }
    },
  }
}