Ich versuche, meine Daten nach Datum zu sortieren, aber es scheint, als ob die Daten zufällig herauskommen. Kann mir jemand sagen, warum meine queryOrdered(byChild: "startDate")
nicht funktioniert? Und wie bekomme ich die Daten sortiert?Daten von Firebase sind unsortiert
Sie können meine Datenstruktur hier sehen: Complex Query
Code:
DataService.ds.REF_USER_CURRENT.child("logs").observeSingleEvent(of: .value, with: {(userSnap) in
if let SnapDict = userSnap.value as? [String:AnyObject]{
//Run through all the logs
for each in SnapDict{
FIRDatabase.database().reference().child("logs/\(each.key)").queryOrdered(byChild: "startDate").observeSingleEvent(of: .value , with : {(Snap) in
let period = Period(logId: each.key, postData: Snap.value as! Dictionary<String, AnyObject>)
self.periods.append(period)
print(period.duration)
print(period.startDate)
self.tableView.reloadData()
})
}
}
})
Periode:
struct Period {
var _periodId: String!
var _startDate: String!
var _duration: Int!
var logs = [Log]()
var _periodRef: FIRDatabaseReference!
init() {
}
init(logId: String, postData: Dictionary<String, AnyObject>) {
self._periodId = logId
if let startDate = postData["startDate"] {
self._startDate = startDate as? String
}
if let duration = postData["duration"] {
self._duration = duration as? Int
}
_periodRef = DataService.ds.REF_PERIODS.child(_periodId)
}
}
Sind Sie verwenden struct, wenn ja, aktualisieren Sie Ihre Frage mit Ihrer Struktur .. – Dravidian
Fertig @Dravidian :) – Grumme
Wenn Sie den Snapshot in ein Wörterbuch konvertieren, wird seine Reihenfolge undefiniert. Siehe http://stackoverflow.com/questions/40166483/firebase-getting-data-in-order/40168370#40168370 –