按鈕按下我正在從Firebase獲得的陣列上執行某些過濾器。例如其中之一是:在加載時從Firebase數組上運行排序?
self.PersonalSearchesList = PersonalSearchesList.sorted{ $0.users > $1.users }
self.tableView.reloadData()
的問題是,我希望當視圖最初加載我想要被applied..but過濾器之一,我不知道從哪裏跑過濾。
如果我在查詢後追加數組時運行排序,那麼我的信息/單元格將會得到不正確的信息。
我無法在viewDiDLoad中運行它,因爲Firebase的觀察者正在ViewDidLoad中運行,並且此時陣列不會被填充。
編輯:
currentUserFirebaseReference.child("rooms").observeSingleEvent(of: .value) { (snapshot: FIRDataSnapshot) in
if let snapshots = snapshot.children.allObjects as? [FIRDataSnapshot] {
for snap in snapshots {
DataService.ds.REF_INTERESTS.child(interestKey).observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
if snapshot.value != nil {
if let users = (snapshot.value! as? NSDictionary)?["users"] as? Dictionary<String,AnyObject> {
DataService.ds.REF_USERS.child(topUser).child("pictureURL").observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
self.PersonalSearchesList.append(eachSearch)
})
}
}
})
}
}
}
initialLoadOver = true
}
那麼在什麼時候是異步過這個?在哪一行的結尾括號之後,我需要做些什麼?
顯示firebase closure的代碼,在這裏你要在數組中添加數據。 –
@NiravD剛剛編輯 – user6820041