データを日付順にソートしようとしていますが、データがランダムに出てくるようです。誰も私のqueryOrdered(byChild: "startDate")
が動作しない理由を教えてもらえますか?そして、どのようにデータをソートするのですか?Firebaseのデータはソートされていません
あなたがここに私のデータ構造を見ることができます: Complex Query
コード:
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()
})
}
}
})
期間:
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)
}
}
ています構造体を使用している場合は構造体を使用して質問を更新してください。 – Dravidian
完了@Dravidian :) – Grumme
スナップショットを辞書に変換するとその順序は不定になります。 http://stackoverflow.com/questions/40166483/firebase-getting-data-in-order/40168370#40168370 –