在多个参考ID上查询Firebase数据
我在Firebase中的数据结构有点像下面这样。用户有一个他们有权访问的组列表。我想知道我如何进行Firebase查询,只获取$refid等于users中“groups”部分中一次的组。这是一种多对多的关系。我只想列出用户所属的组 是一个接一个地获取它们的唯一选择,还是有更好的解决方案在多个参考ID上查询Firebase数据,firebase,Firebase,我在Firebase中的数据结构有点像下面这样。用户有一个他们有权访问的组列表。我想知道我如何进行Firebase查询,只获取$refid等于users中“groups”部分中一次的组。这是一种多对多的关系。我只想列出用户所属的组 是一个接一个地获取它们的唯一选择,还是有更好的解决方案 users: { "$uid": { name: "John Doe", groups: { "$refId": true,
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"
}
}
正如您所建议的,从用户节点加载组并迭代将得到每个组 另一个选择是稍微不同的组结构
groups: {
"$refId": {
title: "Group 1"
uid0: true
uid1: true
},
"$refId": {
title: "Group 2"
uid1: true
uid3: true
}
}
然后可以在groups节点中查询uid1:true,它只返回uid1所属的组;在这种情况下,第一组和第二组。回答得很好,杰!快速提示:第二种方法的优点是它允许直接访问成员列表。我更愿意将“组元数据”(即标题)从“组成员”中分离出来。此外,您可以考虑存储关于每个成员的有用信息(例如,他们的名字),而不是“<代码>真< /代码>。这样,您就可以通过单个直接查找而不是多个嵌套查询来显示组成员列表。