首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift中不按名称排序的Firebase queryOrderedByChild

在Swift中不按名称排序的Firebase queryOrderedByChild
EN

Stack Overflow用户
提问于 2016-02-19 13:41:01
回答 1查看 1K关注 0票数 0

我在安全和规则选项中这样做:

代码语言:javascript
运行
复制
{
 "rules": {
 ".read": true,
 ".write": true,
 "groups": {
    ".indexOn": "name"
  } 
 }
}

我的JSON结构是这样的:

代码语言:javascript
运行
复制
{
"groups": {
    "-KAti17inT7GbHEgbzzS": {
        "author": "ruben",
        "name": "C"
   },
   "-KAti36BQGO8sRmfufkE": {
        "author": "ruben",
        "name": "D"
   },
   "-KAti2CVAHtJllQm_m-W": {
        "author": "ruben",
        "name": "A"
   }
}

正如你所看到的,它不是按照“名字”来排序的,它应该是这样的。我做错什么了?

EN

Stack Overflow用户

回答已采纳

发布于 2016-02-19 15:12:50

安全规则中的.indexOn指令只告诉数据库在name属性上创建索引。它不会自动重新排序数据。

此外: JSON对象中的键顺序未定义。

若要按名称获取组列表,必须执行Firebase查询。来自关于查询的Firebase文档

代码语言:javascript
运行
复制
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")
    }
})

如果您将此片段改编为您的数据结构,它将按正确的顺序打印组。

票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35506752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档