В моем приложении iOS есть несколько прослушивателей событий Firebase, поскольку пользователь выполняет различные функции. Я столкнулся с проблемой, когда приложение зависает (только иногда), особенно когда пользователь завершает его, дважды нажав кнопку «Домой» и проведя пальцем вверх. В функции applicationWillTerminate AppDelegate.swift я просто удаляю все зарегистрированные прослушиватели событий:
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
Home.globalEvents = []
removeListeners()
}
private func removeListeners()
{
UserService.userEventListener?.remove()
UserService.friendIDListener?.remove()
UserService.groupListener?.remove()
UserService.postListener?.remove()
Home.requestListener?.remove()
Home.eventsListener?.remove()
Home.inviteListener?.remove()
Home.requestCount = 0
Home.inviteCount = 0
Home.publicEventListener?.remove()
Home.privateEventListener?.remove()
ProfileFinder.requestListener?.remove()
}
Это выдает мне сообщение об ошибке: «Ошибка подтверждения в авто FSTLocalStore :: releaseQuery :: :( анонимный класс): : operator () () const () "
Может кто-нибудь подсказать мне, почему то, что я делаю, проблематично c? Спасибо.