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