我有一堆我想要索引的键 .indexOn
假设我的数据如下所示.我希望能够使用.orderByChild("height").
{
"lambeosaurus": {
"stats": {
"height" : 2.1,
"length" : 12.5,
"weight": 5000
}
},
"stegosaurus": {
"stats": {
"height" : 4,
"length" : 9,
"weight" : 2500
}
}
}
Run Code Online (Sandbox Code Playgroud)
伤口我如何指定索引的规则是height哪个stats?我是否需要对数据进行重组或展平?
Tom*_*thy 26
您现在可以任意深入查询和索引.
{
"rules": {
"$dinosaur": {
".indexOn": ["stats/height"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
并查询嵌套值:
.orderByChild('stats/height')
Run Code Online (Sandbox Code Playgroud)
Rob*_*rco 16
更新2015/12/17: Firebase现在支持深度索引,请参阅Tom的回答.
您可以在数据树中任意嵌套索引规则,但您一次只能查询一个元素列表的属性 - 而不是任意深度.这是一些示例规则,索引高度:
{
"rules": {
"$dinosaur": {
"stats": {
".indexOn": ["height"]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)