В словаре нет реального порядка; порядок распечатки не имеет смысла и может измениться. Мы можем воспроизвести это без ссылки на firebase:
let d : NSDictionary = [
"-Ly6Njj9vNH_T9umxDwS" : "01-08-2020",
"-Ly6U4vzEAGvIC0Yblnl" : "12-08-2020",
"-Ly6U7_91jW5tajpX7k0" : "11-08-2020",
"-Ly6UG6HYqTMq1NaRehI" : "10-08-2020"
]
print(d)
//{
// "-Ly6Njj9vNH_T9umxDwS" = "01-08-2020";
// "-Ly6U4vzEAGvIC0Yblnl" = "12-08-2020";
// "-Ly6U7_91jW5tajpX7k0" = "11-08-2020";
// "-Ly6UG6HYqTMq1NaRehI" = "10-08-2020";
//}
let d2 = d as! [String:String]
print(d2)
// ["-Ly6Njj9vNH_T9umxDwS": "01-08-2020",
"-Ly6U4vzEAGvIC0Yblnl": "12-08-2020",
"-Ly6UG6HYqTMq1NaRehI": "10-08-2020",
"-Ly6U7_91jW5tajpX7k0": "11-08-2020"]
Итак, если вы хотите упорядоченный список пар, вы должны использовать массив, а вы должны заказать его самостоятельно каким-то образом, предположительно используя метку времени. Но, как говорится в комментарии, этот порядок равен порядку ключей.
let arr = Array(d2).sorted {$0.key < $1.key}
print(arr)
//[(key: "-Ly6Njj9vNH_T9umxDwS", value: "01-08-2020"),
// (key: "-Ly6U4vzEAGvIC0Yblnl", value: "12-08-2020"),
// (key: "-Ly6U7_91jW5tajpX7k0", value: "11-08-2020"),
// (key: "-Ly6UG6HYqTMq1NaRehI", value: "10-08-2020")]
Если все, что вам нужно, это строки даты, просто map
, вплоть до value
s. Порядок сохраняется, потому что теперь это массивы.
let arr2 = arr.map {$0.value}
print(arr2)
// ["01-08-2020", "12-08-2020", "11-08-2020", "10-08-2020"]