读取具有规则限制的firebase实时数据库子集
我有一个firebase实时数据库,其结构如下:读取具有规则限制的firebase实时数据库子集,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我有一个firebase实时数据库,其结构如下: { "USERS": { "user-1": { ... }, "user-2": { ... } } "GROUPS": { "group-1": { "id": "group-1", "AUTH": { "user-1": true, } }, "group-2": { "id": "group-2", "AUTH"
{
"USERS": {
"user-1": { ... },
"user-2": { ... }
}
"GROUPS": {
"group-1": {
"id": "group-1",
"AUTH": {
"user-1": true,
}
},
"group-2": {
"id": "group-2",
"AUTH": {
"user-2": true
}
},
"group-3": {
"id": "group-3",
"AUTH": {
"user-1": true,
"user-2": true
}
}
}
}
{
"rules": {
"GROUPS": {
"$groupId": {
".write": false,
".read": "auth != null && data.child('AUTH').child(auth.uid).exists()"
}
}
}
}
我知道我可以授予仅属于特定组的用户读取权限,如下所示:
{
"USERS": {
"user-1": { ... },
"user-2": { ... }
}
"GROUPS": {
"group-1": {
"id": "group-1",
"AUTH": {
"user-1": true,
}
},
"group-2": {
"id": "group-2",
"AUTH": {
"user-2": true
}
},
"group-3": {
"id": "group-3",
"AUTH": {
"user-1": true,
"user-2": true
}
}
}
}
{
"rules": {
"GROUPS": {
"$groupId": {
".write": false,
".read": "auth != null && data.child('AUTH').child(auth.uid).exists()"
}
}
}
}
我试图找到一个查询+规则组合,它将返回登录用户所属的所有组
例如:
登录“user-1”的查询和firebase规则更改返回以下内容的快照:
{
"group-1": {
"id": "group-1",
"AUTH": {
"user-1": true,
}
},
"group-3": {
"id": "group-3",
"AUTH": {
"user-1": true,
"user-2": true
}
}
}
或
查询“GROUPS”引用现在给我一个“permissions denied”错误
将“.read=true”添加到组:
{
"rules": {
"GROUPS": {
".read": true,
"$groupId": {
".write": false,
".read": "auth != null && data.child('AUTH').child(auth.uid).exists()"
}
}
}
}
或通过条件的“.read”的任何组合,使每个人都可以访问所有数据
有没有一种方法(在当前结构中)通过向规则添加一些限制来查询数据库并从“GROUPS”分支获取我所属的所有组?
或者我需要在每个用户下维护他所属组的列表吗