我有以下代码可从Firebase数据库获取数据:
func fetchVinylsData(){
guard let currentUID = Auth.auth().currentUser?.uid else { return }
SVProgressHUD.show()
self.vinyls = [Vinyl]()
dbRef.child("vinyls").child(currentUID).observe(.childAdded) { (snapshot) in
guard let dictionary = snapshot.value as? Dictionary<String,AnyObject> else { return }
let vinyl = Vinyl(dictionary: dictionary)
self.vinyls.append(vinyl)
self.vinyls.sort(by: { (vinyl1, vinyl2) -> Bool in
if vinyl1.artist < vinyl2.artist {
return true
} else if vinyl1.artist == vinyl2.artist {
return vinyl1.title < vinyl2.title
} else {
return false
}
})
DispatchQueue.main.async {
self.tableView.reloadData()
self.navigationItem.title = "List of Vinyls(\(self.vinyls.count))"
}
}
SVProgressHUD.dismiss()
}
当我在viewDidAppear上启动我的应用时,以及当我从另一个ViewController返回主页时,以及在我从数据库中删除项目或更新项目时,都会调用它。但是,由于我在数据库中获得了很多记录(900条记录,并增加到约4.000条记录),所以我想知道什么是在Firebase中处理大量数据并迅速避免降低应用速度的最佳方法。