我想要使用.indexOn
假设我的数据如下所示。我希望能够使用.orderByChild("height")
。
{
"lambeosaurus": {
"stats": {
"height" : 2.1,
"length" : 12.5,
"weight": 5000
}
},
"stegosaurus": {
"stats": {
"height" : 4,
"length" : 9,
"weight" : 2500
}
}
}
我如何指定用于索引height
stats
的孩子的规则?我是否需要重组或展平我的数据?
答案 0 :(得分:26)
您现在可以任意深入查询和索引。
{
"rules": {
"$dinosaur": {
".indexOn": ["stats/height"]
}
}
}
并查询嵌套值:
.orderByChild('stats/height')
答案 1 :(得分:15)
更新2015/12/17: Firebase现在支持深度索引,请参阅Tom的回答。
您可以在数据树中任意嵌套索引规则,但您一次只能查询一个元素列表的属性 - 而不是任意深度。这是一些示例规则,索引高度:
{
"rules": {
"$dinosaur": {
"stats": {
".indexOn": ["height"]
}
}
}
}