在Swift中使用Firebase查询最新条目
我刚开始使用Firebase,但我找不到如何做听起来很简单的事情:列出我数据库的所有最新条目 以下是我的数据库的屏幕截图: 所以,我试着列出如下最新条目:在Swift中使用Firebase查询最新条目,swift,firebase,firebase-realtime-database,Swift,Firebase,Firebase Realtime Database,我刚开始使用Firebase,但我找不到如何做听起来很简单的事情:列出我数据库的所有最新条目 以下是我的数据库的屏幕截图: 所以,我试着列出如下最新条目: // picturesRef = FIRDatabase.database().reference().child("pictures") let _ = self.picturesRef.queryOrdered(byChild: "createdTime").queryLimited(toLast: 50).observ
// picturesRef = FIRDatabase.database().reference().child("pictures")
let _ = self.picturesRef.queryOrdered(byChild: "createdTime").queryLimited(toLast: 50).observe(.value, with: { snapshot in
// Stocking the result into picturesArr array
for elem in picturesArr {
print(elem.createdTime)
}
})
现在,当我显示每个项目的createdTime值时,我有如下内容:
- 1484738582.0
- 1484000086.0
- 1484738279.0
- 1484734358.0
- 1484625525.0
- 1484728677.0
任何人都会知道我在代码中哪里做错了什么?提前谢谢 实际上,在使用以下命令对查询返回的数组进行排序之后:
picturesArr.sort(by: {$0.createdTime > $1.createdTime})
我发现查询返回的是我正在查找但未排序的条目
对我来说,这看起来有点奇怪,也许有人知道为什么,甚至更好,知道如何获得已经排序的结果?查询将以正确的顺序返回项目。但最有可能的情况是(您的问题中似乎缺少相关的代码),当您将快照转换为字典(定义上是无序的)时,您将失去该顺序 要使项目保持正确的顺序,请迭代快照。子项:
let picturesRef = FIRDatabase.database().reference().child("pictures")
let _ = picturesRef
.queryOrdered(byChild: "createdTime")
.queryLimited(toLast: 50)
.observe(.value, with: { snapshot in
for child in snapshot.children {
print(child.key)
print(child.child("createdTime").value
}
})
另见:
- (我通常尽量避免
,但也没关系)allObjects