Firebase安全规则:.indexOn唯一ID

我有这个结构:

"post": { "groupMember": { "-KHFHEHFWDB1213": "true", "-KSJHDDJISIS011": "true", "-KJSIO19229129k": "true" } } 

我想.indexOn自动生成的唯一groupMember id。

我试过这样做:

 "post": { ".indexOn": "groupMember" ... } 

但我仍然收到这个错误:

考虑在/ post添加“.indexOn”:“groupMember / -KHFHEHFWDB1213”

那么如何在唯一ID上添加.indexOn?

更新:

这是我使用的查询(在Swift中):

 postRef.queryOrderedByChild("groupMember/\(uid)").queryEqualToValue(true).observeEventType(.Value, ... ) 

要查询其中一个给定键的值是否为"true" (请注意,键入的数据结构是字符串,而不是布尔值 – 需要注意的东西!)您需要创建安全规则,如下所示:

 { "post": { "groupMember": { "$memberId": {".indexOn": ".value"} } } } 

然后在/post/groupMember路径上使用queryOrderedByValue("true") 。 需要注意的重要事项是规则中的$memberId ,它声明了表示自动生成的id的通配符键和.value ,它表示不是索引子属性(如果你的结构有另一层嵌套),而是要在立即叶节点值。