Я столкнулся с проблемой, ведущей себя так. При открытии нового VC, который получает несколько изображений из Firebase Storage (в данном случае 9 изображений, каждое изображение занимает несколько килобайт), и получает небольшое количество документов из Firestore, приложение как бы зависает примерно на 2-4 секунды, прежде чем открытие и отображение вида. У меня есть контроллер панели вкладок, и я не могу нажать на любой другой элемент панели вкладок, пока не отобразится представление.
У меня есть все ссылки на Firebase и вызов функции внутри viewWillAppear. Я также пытался поместить все в ViewDidLoad и viewDidAppear, но у меня такое же зависание.
Есть ли решение для этого, я делаю что-то не так или мне просто нужно с этим жить?
У меня последняя версия Firebase, я использую swift 4 и у меня есть интернет-соединение 1000 Мб.
var db: Firestore!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
tableView.delegate = self
tableView.dataSource = self
db = Firestore.firestore()
getTasks()
tableView.reloadData()
}
func getTasks() {
db.collection("School").document(school).collection("Projects").document((project?.projectId)!).collection("Tasks").whereField("Completed", isEqualTo: false).addSnapshotListener { (snapshot, error) in
if let error = error {
print(error)
} else {
self.tasks = snapshot!.documents.compactMap({TaskModel(dictonary: $0.data())})
self.tableView.reloadData()
}
}
}