Swift - 如何在Firebase上创建排序查询为Descending?

iam*_*rak 0 sorting ios firebase swift firebase-realtime-database

我正在使用Firebase和Alamofire,AlamofireImage将imageURL数据缓存在内存中并上传ImageShack.

我坚持创建降序查询尝试做和搜索,但我找不到可能的描述对我来说.这是我在Firebase上的测试ref_post.

childByAutoId()

- userUid

- imageUrl

- 时间戳(我用这个创建了)

*使用NSDate().formattedISO8601这是最好的方式还是你可以建议我基本上处理它?

如何在Firbase IOS/Swift中进行降序查询.这是我的viewDidLoad:

let query = DataService.ds.REF_POSTS.queryOrderedByChild("timestamp")

    query.observeEventType(.Value, withBlock: { snapshot in

        if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] {
            self.posts = []
            for snap in snapshots {
                if let postDict = snap.value as? Dictionary<String, AnyObject> {

                    print(postDict)

                    let post = Post(imageUrl: postDict["imageUrl"]! as? String, username: DataService.ds.REF_USERS.authData.uid)

                    self.posts.append(post)
                }
            }

            self.tableView.reloadData()
        }
    })
Run Code Online (Sandbox Code Playgroud)

Tim*_*len 5

self.posts = self.posts.reverse()
Run Code Online (Sandbox Code Playgroud)

为了保存NSDate实例,我个人使用timeIntervalSinceReferenceDate()它返回一个NSTimeInterval(这是一个Double),然后您可以将其保存在Firebase中。读取数据时,可以NSDate通过获取原始数据init(timeIntervalSinceReferenceDate:)


小智 5

代替

self.posts.append(post)
Run Code Online (Sandbox Code Playgroud)

使用

self.posts.insert(post, at: 0)
Run Code Online (Sandbox Code Playgroud)

这将在列表的开头添加的项目,并因此扭转你从火力进入一个降序升序排序.