已验证用户的Firebase读取被拒绝

已验证用户的Firebase读取被拒绝,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,大家好,我是新手,在模拟安全规则方面遇到了问题。看起来,即使使用经过身份验证的uid,我也无法读取“闪存卡”(第4行:读取被拒绝);如果没有管理员uid,请在“抽认卡”上书写(第5行)。你知道会发生什么吗 谢谢 以下是我的规则: { "rules": { "Flashcards": { ".read": "root.child('users').hasChild('auth.uid')", ".write": "root.child('admins

大家好,我是新手,在模拟安全规则方面遇到了问题。看起来,即使使用经过身份验证的uid,我也无法读取“闪存卡”(第4行:读取被拒绝);如果没有管理员uid,请在“抽认卡”上书写(第5行)。你知道会发生什么吗

谢谢

以下是我的规则:

{
   "rules": {
     "Flashcards": {
        ".read": "root.child('users').hasChild('auth.uid')",
        ".write": "root.child('admins').hasChild('auth.uid')"
         },
     "users": {
      "$uid": {
          ".read": "$uid === auth.uid",
          ".write": "$uid === auth.uid"
              } 
      }
}
}
这是我的数据库的一个示例:

{
  "Flashcards": {
    "Deck A": {
      "1": [
        {
            "Question": "Question A",
            "Answer": "Answer A"
        },
        {
            "Question": "Question B",
            "Answer": "Answer B"
        },
        {
            "Question": "Question C",
            "Answer": "Answer C"
        }
        ],
        "2": [
            {
                "Question": "Question A",
                "Answer": "Answer A"
            },
            {
                "Question": "Question B",
                "Answer": "Answer B"
            },
            {
                "Question": "Question C",
                "Answer": "Answer C"
            }
            ]
    }
    },
  "admins": {
    "uid": {
        "name" : "John"
        }
  },
  "users": {
    "uid" : {
        "Actividad" : "Otro"
      },
      "uid" : {
        "Actividad" : "Otro"
      }
    }
}

您正在将“auth.uid”用作字符串,而不是预定义变量。 所以阅读规则应该是这样的(没有单引号):


请编辑您的问题以包含失败的代码。我已经指定了失败的代码行,idk,如果这是您的意思的话。您的问题包含您尝试读取的JSON以及控制对该JSON的访问的规则。缺少的是试图读取JSON的代码(Swift、Java、JavaScript或类似的代码)。嗯。。。我在firebase上的实时DB规则模拟器上做这件事。我可以得到你在模拟中要求的吗?在这种情况下,模拟器的屏幕截图也可以。我们只需要能够看到你在做什么。很好的发现!我完全错过了。谢谢你们两个!它可以为aut用户阅读,为管理员编写。
    ".read": "root.child('users').hasChild(auth.uid)"