【发布时间】:2017-01-07 09:08:35
【问题描述】:
我已经开始测试 Firebase,但我无法弄清楚关于索引的一件事。我正在根据我读过的内容创建一个结构 - Firebase Data Structuring - 类似于用户和组的示例。 JSON 树看起来像这样:
{
"babies" : {
"-KQSVCXI-ZMz_lQ_Q906" : {
"name" : "Baby",
"parents" : {
"F0o8Gr5GC2SrakUYZpC20efcmk63" : true
}
},
"-KQSf4t9XQC3LnbsxLYS" : {
"name" : "Name2",
"parents" : {
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
}
}
}
}
我正在尝试为父母生孩子 - 就像 Firebase 示例中的群组成员一样。我在 iOS 应用程序中使用:
self.babiesReference
.queryOrderedByChild("parents/\(user.uid)")
.queryEqualToValue(true)
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Print value
print(snapshot.value)
}
user.uid 是当前用户的 ID。这工作正常,但唯一剩下的问题是:
使用未指定的索引。考虑添加“.indexOn”: “父母/S6aO6Dx4lgg6anW9S9hu7EJrhVg1”在 /babies 到您的安全 提高性能的规则
如何索引这个由用户 ID 呈现的“动态”孩子?有没有办法或者我必须改变树结构?
谢谢。
【问题讨论】:
-
安全规则允许带有变量的动态密钥。我不确定索引是否也支持这些,但值得一试。见这里:firebase.google.com/docs/database/security/user-security。规则在 /users/$user_id 上强制执行,它保护 /users 下面的任何密钥。
标签: ios swift firebase firebase-realtime-database