我已经开始测试Firebase,但我无法弄清楚有关索引的一件事。我正在根据我读过的内容创建一个结构 - Firebase Data Structuring - 类似于用户和组的示例。 JSON树看起来是这样的:Firebase .indexOn动态密钥
{
"babies" : {
"-KQSVCXI-ZMz_lQ_Q906" : {
"name" : "Baby",
"parents" : {
"F0o8Gr5GC2SrakUYZpC20efcmk63" : true
}
},
"-KQSf4t9XQC3LnbsxLYS" : {
"name" : "Name2",
"parents" : {
"S6aO6Dx4lgg6anW9S9hu7EJrhVg1" : true
}
}
}
}
,我试图让婴儿的父母 - 就像有在小组成员的火力地堡的例子。我做的是,在iOS的应用程序使用:
self.babiesReference
.queryOrderedByChild("parents/\(user.uid)")
.queryEqualToValue(true)
.observeSingleEventOfType(.Value, withBlock: { (snapshot) in
// Print value
print(snapshot.value)
}
其中user.uid
是当前用户的ID。这工作正常,但唯一的问题仍然是这样的:
使用未指定的索引。考虑加入“.indexOn”: ‘父母/ S6aO6Dx4lgg6anW9S9hu7EJrhVg1’在/婴儿安全 规则获得更好的性能
如何指数用户的ID呈现这种‘动态’的孩子呢?有没有办法做到这一点,或者我必须改变树结构吗?
谢谢。
安全规则允许带变量的动态密钥。我不确定索引是否也支持这些,但值得尝试。请参阅https://firebase.google.com/docs/database/security/user-security。规则在/ users/$ user_id上强制实施,以保护下面的任何关键字/用户。 –