当我将以下Firebase数据库数据加载到tableView中时,数据按日期升序排序。如何通过降序排序(在顶部显示最新帖子)?
在Xcode中查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
JSON导出:
"posts" : {
"-KMFYKt7rmfZINetx1hF" : {
"date" : "07/09/16 12:46 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
"-KMFYZeJmgvmnqZ4OhT_" : {
"date" : "07/09/16 12:47 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
谢谢!!
编辑:下面的代码是整个解决方案,感谢Bawpotter
更新的查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let post = Post.init(key: snapshot.key, date: snapshot.value!["date"] as! String, postedBy: snapshot.value!["postedBy"] as! String, status: snapshot.value!["status"] as! String)
self.posts.append(post)
self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: self.posts.count-1, inSection: 0)], withRowAnimation: .Automatic)
tableView cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PostCell", forIndexPath: indexPath) as! PostCell
self.posts.sortInPlace({$0.date > $1.date})
self.tableView.reloadData()
Post.swift:
import UIKit
class Post {
var key: String
var date: String
var postedBy: String
var status: String
init(key: String, date: String, postedBy: String, status: String){
self.key = key
self.date = date
self.postedBy = postedBy
self.status = status
}
}
当Firebase将数据加载到tableView数据源数组中时,请调用此命令:
yourDataArray.sortInPlace({$0.date > $1.date})
Swift 3版本:
yourDataArray.sort({$0.date > $1.date})
Swift 4版本:
yourDataArray.sort(by: {$0.date > $1.date})
主要内容:按子列排序,按索引排序,按值排序Firebase提供了多种排序数据的方式。 在本章中,我们将学习简单的查询示例。 这里将使用前面章节中的相同数据。数据记录如下所示 - 按子列排序 要按列排序数据,可以使用下面的代码。 示例 让我们来看看下面的例子。 执行上面示例代码,得到以下结果 - 按索引排序 我们可以通过类似的方式:按索引键来排序数据。 示例 让我们看看下面的一个例子。 执行上面示例代码,得到以下结果 - 按值排序 我们也可
问题内容: 假设我有一个查询“ select * from子句,其中id在(0,2,5,1,3)中”,我实际上希望返回的行以它们在where子句中指定的相同顺序返回。ID的顺序将随查询的不同而改变,并且该顺序没有模式。 我知道可以更改数据模型,创建临时表等。但是请相信我,这些类型的解决方案在我的情况下将行不通。我也无法在应用程序代码中更改结果对象的顺序。 我还知道,不同的数据库引擎对事物的排序方式
问题内容: 我有这样的自定义订购需求: 我曾经想过用3个不同的选择查询的帮助下结合和。但是,我不能这样做,因为必须 在 和 之前 使用。 如何进行选择(或多个选择)以实现上面的自定义排序? 另一个解决方法可能会有所帮助,就是使此选择查询中返回的 第一条记录 成为最后一条记录,但是如何? 问题答案: 试试这个: 1亿个常量必须大于N。 这是一个简单的演示
数学成绩从高到低排序 const { field = '' } = ctx.query const fields = ctx.helper.filterFields(field) // 数学成绩从高到低排序 const ret = await Student.findAll({ attributes: fields, order: [ ['math', 'DESC
我想在Firebase数据库上从上到下排序。有人能帮帮我吗?我试图使用集合,但不起作用。 启动回收者视图的活动 MyClass用户
问题内容: 好的,我尝试使用谷歌搜索来寻找诸如疯狂之类的答案,但是我无法解决此问题,因此我希望有人能够提供帮助。 假设我有一个用户表,非常简单的表: 我还有他们的汽车和价格表。 现在,我需要做的是这样的(可以随意重写): 哪个返回: 但是我需要某个用户的最昂贵的汽车,而不是找到的第一个条目。 那么问题来了:如何设置LEFT JOIN表由carPrice,DESC排序? 问题答案: 尝试搭配使用。