我有这样的结构:
"post": {
"groupMember": {
"-KHFHEHFWDB1213": "true",
"-KSJHDDJISIS011": "true",
"-KJSIO19229129k": "true"
}
}
我想 .indexOn 自动生成的唯一组成员 ID。
我试过这样做:
"post": {
".indexOn": "groupMember"
...
}
但我仍然收到此错误:
考虑在/post 添加 ".indexOn": "groupMember/-KHFHEHFWDB1213"
那么如何在唯一 ID 上添加 .indexOn?
更新:
这是我使用的查询(在 Swift 中):
postRef.queryOrderedByChild("groupMember/\(uid)").queryEqualToValue(true).observeEventType(.Value, ... )
最佳答案
要查询给定键之一是否具有值 "true"
(请注意,输入的数据结构是字符串,而不是 bool 值——需要注意的地方!)你'会想像这样创建安全规则:
{
"post": {
"groupMember": {
"$memberId": {".indexOn": ".value"}
}
}
}
然后在 /post/groupMember
路径上使用 queryOrderedByValue("true")
。需要注意的重要一点是规则中的 $memberId
,它声明了一个代表您自动生成的 ID 的通配符键,以及 .value
,它表示不是在子属性上建立索引(如果你的结构有另一层嵌套)你想在直接叶节点值上建立索引。
关于ios - Firebase 安全规则 : . indexOn 唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37551951/