我在Firebase中的数据结构如下所示。有些用户拥有他们有权访问的组列表。我想知道我如何制作Firebase查询只获取$ refIds等于用户的“groups”部分中的一次的组。这是一种多对五的关系。我只想列出用户所属的组列表。
是逐个获取它们的唯一选择还是有更好的解决方案?
users: {
"$uid": {
name: "John Doe",
groups: {
"$refId": true,
"$refId": true
}
},
"$uid": {
name: "Jane Doe",
groups: {
"$refId": true
}
}
},
groups: {
"$refId": {
title: "Group 1"
},
"$refId": {
title: "Group 2"
}
}
答案 0 :(得分:3)
正如您所建议的那样,从用户节点加载组并迭代它将得到每个组。
另一种选择是略有不同的群体结构
groups: {
"$refId": {
title: "Group 1"
uid0: true
uid1: true
},
"$refId": {
title: "Group 2"
uid1: true
uid3: true
}
}
然后,您可以在组节点中查询uid1:true,它只返回uid1所属的组;在这种情况下,第1组和第2组。