Android Firebase数据库:添加规则以从所有子项中查找特定值
我想为我的数据库设置安全规则,我只想让用户和管理员从这个特定的组中读取,但我的规则不起作用 只有当我设置了一个特定的索引时,它才起作用。我不知道如何检查所有索引。这在某种程度上是可能的吗 数据库: 规则:Android Firebase数据库:添加规则以从所有子项中查找特定值,android,firebase,firebase-realtime-database,firebase-security,Android,Firebase,Firebase Realtime Database,Firebase Security,我想为我的数据库设置安全规则,我只想让用户和管理员从这个特定的组中读取,但我的规则不起作用 只有当我设置了一个特定的索引时,它才起作用。我不知道如何检查所有索引。这在某种程度上是可能的吗 数据库: 规则: 我建议您将数据库结构更改为这样。将用户id作为用户和管理员的子密钥 希望这能有所帮助:你能告诉我们什么不起作用吗?这是因为该组之外的其他用户/管理员可以读取该组的数据吗?不是,这是因为没有人,甚至用户和管理员也可以读取其组的数据。我更新了规则。他们有一个内部测试的解决办法是的,我认为这是唯一
我建议您将数据库结构更改为这样。将用户id作为用户和管理员的子密钥
希望这能有所帮助:你能告诉我们什么不起作用吗?这是因为该组之外的其他用户/管理员可以读取该组的数据吗?不是,这是因为没有人,甚至用户和管理员也可以读取其组的数据。我更新了规则。他们有一个内部测试的解决办法是的,我认为这是唯一的办法。谢谢:
{
"rules": {
"groups": {
"$groupid": {
".write": "!data.exists()",
".read": "data.child('users').child('$index').val() == auth.uid || data.child('admins').child('$index').val() == auth.uid"
}
},
"users": {
"$uid": {
".read": "auth != null",
".write": "$uid === auth.uid"
}
}
}
}
{
"groups": {
<groupId1>: {
"admins": {
<uid1>: true,
<uid2>: true
},
"description": "some description",
"users": {
<uid3>: true,
<uid4>: true,
<uid5>: true
},
...
},
<groupId2>: {
...
}
}
}
{
"rules": {
"groups": {
"$groupid": {
".write": "!data.exists()",
".read": "data.child('users').child(auth.uid).val() == true || data.child('admins').child(auth.uid).val() == true"
}
}
}
}