我有这个结构:
"post": {
"groupMember": {
"-KHFHEHFWDB1213": "true",
"-KSJHDDJISIS011": "true",
"-KJSIO19229129k": "true"
}
}
我想.indexOn自动生成的唯一groupMember ID。
我试过这样做:
"post": {
".indexOn": "groupMember"
...
}
但我仍然收到此错误:
考虑添加" .indexOn":" groupMember / -KHFHEHFWDB1213"在/后
那么如何在唯一ID上添加.indexOn?
更新
这是我使用的查询(在Swift中):
postRef.queryOrderedByChild("groupMember/\(uid)").queryEqualToValue(true).observeEventType(.Value, ... )
答案 0 :(得分:1)
要查询其中一个给定键是否具有值"true"
(请注意,键入的数据结构是字符串,而不是布尔值 - 需要注意的东西!)您需要创建像这样的安全规则:
{
"post": {
"groupMember": {
"$memberId": {".indexOn": ".value"}
}
}
}
然后在queryOrderedByValue("true")
路径上使用/post/groupMember
。需要注意的重要事项是规则中的$memberId
,它声明了表示自动生成的id的通配符键,.value
表示不是对子属性进行索引(如果你的结构有另一层嵌套)您想要在即时叶节点值上建立索引。