0
排序火力地堡實時數據庫中的數據,我需要在一個表視圖來顯示這些數據,但他們已在混合順序表視圖。我怎樣才能把它們放入與數據庫中相同的順序。請幫忙,我會深表謝意。
第一張圖片顯示我運行該項目後的iPhone屏幕,第二張圖片是數據庫。我希望他們在數據庫中的確切順序。
排序火力地堡實時數據庫中的數據,我需要在一個表視圖來顯示這些數據,但他們已在混合順序表視圖。我怎樣才能把它們放入與數據庫中相同的順序。請幫忙,我會深表謝意。
第一張圖片顯示我運行該項目後的iPhone屏幕,第二張圖片是數據庫。我希望他們在數據庫中的確切順序。
我希望時期對象是這樣的:
struct PeriodItem {
let key: String
let periodEnd: String
let periodName: String
let periodStart: String
let ref: FIRDatabaseReference?
init(periodEnd: String, periodName: String, periodStart: String, key: String = "") {
self.key = key
self.periodEnd = periodEnd
self.periodName = periodName
self.periodStart = periodStart
self.ref = nil
}
init(snapshot: FIRDataSnapshot) {
key = snapshot.key
let snapshotValue = snapshot.value as! [String: AnyObject]
periodEnd = snapshotValue["periodEnd"] as! String
periodName = snapshotValue["periodName"] as! String
periodStart = snapshotValue["periodStart"] as! String
ref = snapshot.ref
}
func toAnyObject() -> Any {
return [
"periodEnd": periodEnd,
"periodName": periodName,
"periodStart": periodStart,
"key": key
]
}
}
所以
當你填寫你的Periods
陣列充分,只需要使用排序:
// periods - array of objects from firebase database
let yourTableViewPeriodsArray = periods.sorted(by: { $0.key < $1.key }) // maybe ">" instead of "<"
然後:
DispatchQueue.main.async {
self.tableView.reloadData()
}
希望它可以幫助。
當我在viewDidLoad中調用print([PeriodItem] .self)時,我得到Array
不清楚您的數據在Firebase數據庫中的排序方式 - 是按*鍵/ UID *還是按優先級*? –
感謝您的回覆,我已經添加了第二張圖片更加清晰。 –
@ muhcomen檢查我的答案。如果您有其他問題 - 歡迎您 –