У меня есть этот код для извлечения данных из базы данных 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 и быстро, чтобы не замедлять работу моего приложения.