Как сказано в документации Firestore, когда вы больше не заинтересованы в прослушивании ваших данных, отключите прослушиватель. Если ваше приложение не настроено для работы в фоновом режиме или вы не хотите, вы не должны слушать данные и обновлять пользовательский интерфейс. Также учтите, что приложение, скорее всего, будет убито ОС, если оно выполняет работу в фоновом режиме, а не приложением, которое этого не делает. И с экономической точки зрения вы тратите деньги, платя за чтения, которые никто никогда не увидит. При повторном входе на передний план и повторном подключении слушателя он немедленно запускается с данными fre sh (сначала кэшируется, а затем кэшируется, который вы можете отфильтровать).
Самый простой способ обработки ввода приложения и Выход из фона из контроллера представления - это следующая пара уведомлений:
NotificationCenter.default.addObserver(self, selector: #selector(appDidEnterBackgroundHandler(_:)), name: UIApplication.didEnterBackgroundNotification, object: nil)
NotificationCenter.default.addObserver(self, selector: #selector(appWillEnterForegroundHandler(_:)), name: UIApplication.willEnterForegroundNotification, object: nil)
И если вы когда-нибудь захотите узнать, когда деинициализирован объект (а не только контроллеры представления), вы можете распечатать его методом deinit. :
class YourViewController: UIViewController {
deinit {
print("deinit")
}
}
Это сообщит вам, деинициализирован ли контроллер представления. Если контроллер представления является root вкладки (а это главная панель вкладок приложения), он никогда не будет деинициализирован. Но если это не root контроллер представления вкладки - например, он был выдвинут навигационным контроллером на вкладке - тогда он прекратит работу при нажатии.