我在安全和规则选项中这样做:
{
"rules": {
".read": true,
".write": true,
"groups": {
".indexOn": "name"
}
}
}我的JSON结构是这样的:
{
"groups": {
"-KAti17inT7GbHEgbzzS": {
"author": "ruben",
"name": "C"
},
"-KAti36BQGO8sRmfufkE": {
"author": "ruben",
"name": "D"
},
"-KAti2CVAHtJllQm_m-W": {
"author": "ruben",
"name": "A"
}
}正如你所看到的,它不是按照“名字”来排序的,它应该是这样的。我做错什么了?
发布于 2016-02-19 15:12:50
安全规则中的.indexOn指令只告诉数据库在name属性上创建索引。它不会自动重新排序数据。
此外: JSON对象中的键顺序未定义。
若要按名称获取组列表,必须执行Firebase查询。来自关于查询的Firebase文档
let ref = Firebase(url:"https://dinosaur-facts.firebaseio.com/dinosaurs")
ref.queryOrderedByChild("height").observeEventType(.ChildAdded, withBlock: { snapshot in
if let height = snapshot.value["height"] as? Double {
println("\(snapshot.key) was \(height) meters tall")
}
})如果您将此片段改编为您的数据结构,它将按正确的顺序打印组。
https://stackoverflow.com/questions/35506752
复制相似问题