Ich versuche, die Daten zu sortieren, die ich nach Datum erhalte, aber es funktioniert nicht. Dies sind die Daten, die ich sortieren möchten:Firebase sortiere Daten nach Datum
{
"events": {
"Saturday, May 6, 2016" : [ null, {
"Id" : 3,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 4,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ],
"Saturday, April 8, 2016" : [ null, {
"Id" : 1,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
}, {
"Id" : 2,
"LogoImage" : "image_url",
"MainImage" : "image_url",
"Name" : "event_name"
} ]
}
}
ich sie nach Datum geordnet wollen, aber das Problem ist, dass Datum der Schlüssel von einer Liste von Elementen ist. Wie kann ich das tun?
Ich habe dies versucht, aber es funktioniert nicht:
ref.child("events").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snapshot) in
let results = snapshot.value as! [String: Any]
for (eventDate, arr) in results {
let eventsDate = EventsDate()
eventsDate.eventsDate = eventDate
print(eventDate)
}
})
Dank
Sie sollten Firebase die IDs für Sie erstellen lassen. Sie werden anhand des Zeitpunkts erzeugt, zu dem die Daten erstellt wurden, und sortieren automatisch die Daten für Sie. – Starlord
Sie müssen keinen Schlüssel für 'queryOrderedByKey()' angeben? –
Was machst du * innerhalb * des Rückrufs? Höchstwahrscheinlich konvertieren Sie den Snapshot in ein Dictionary, wodurch die Reihenfolge tatsächlich aufgehoben wird (da ein Dictionary inhärent ungeordnet ist). Um sicherzustellen, dass Sie die Objekte in der richtigen/richtigen Reihenfolge erhalten, führen Sie eine Schleife über "snapshot.children" aus. –