Wenn ich die folgenden Firebase-Datenbankdaten in meine TableView lade, werden die Daten in aufsteigender Reihenfolge nach Datum sortiert. Wie kann ich dies absteigend (zeige den neuesten Beitrag oben) bestellen?Firebase Abfrage Sortierreihenfolge in swift?
Abfrage in Xcode:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
JSON-Export:
"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"
},
Dank !!
EDIT: Unten-Code ist die gesamte Dank Lösung
Aktualisiert Abfrage 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 :
yourDataArray.sortInPlace({$0.date > $1.date})
Swift 3 Version:
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
}
}
Sie queryOrderedByChild verwenden meinen Sie Daten erwarten dann werden vorbestellt warum sortieren Sie manuell? –
Sie laden die Tabellenansicht in 'cellForRowAtIndexPath' neu! Dies wird mit einem Absturz enden! –