【发布时间】:2017-06-07 04:55:15
【问题描述】:
问题
我需要对现有的 firebase 数据结构进行特殊检查,并想知道它是否可能(或任何解决方法)。
所以目前的结构是:
{
groups: {
group1: { name: "Group one" }
group2: { name: "Group two" }
},
members: {
group1: {
"some@email,com": true,
"another@email,com": true
},
group2: { "some@email,com": true }
}
}
我需要并且可以轻松做到的:
- 获取特定组中的所有用户
- 将用户添加到任何特定组
- 从任何特定组中删除用户
但我不知道如何进行检查:如果有一些电子邮件的用户是任何组的成员。
组和成员的数量可能很大,所以我不想加载所有成员对象并手动检查。
我的不是最优解
我能找到的唯一方法是再添加一个对象users 并在那里保留可用的组。像这样:
{
users: {
"some@email,com": {
groups: {
group1: true,
group2: true
}
}
}
}
在这种情况下,我可以毫无问题地进行检查,但会再添加一个请求以添加/删除操作(向成员添加电子邮件并将 groupID 添加到用户;从成员中删除电子邮件并从用户中删除 groupID)。
感谢您的帮助。
【问题讨论】:
-
直接检查节点有问题吗?只需在 members/group1/some@email,com 上调用
value并查看值是否为true?不清楚你的目标是什么。 -
@Kato 我认为这个想法是查看 any 组中是否存在电子邮件,而不仅仅是特定的?
-
@Jay 你的想法是对的。我不知道 groupID,我需要检查电子邮件是否在 ANY 组中。
标签: firebase