iOS Firebase отсоединить слушателя-наблюдателя - PullRequest
0 голосов
/ 12 мая 2019

У меня есть UITabBarController, который содержит две вкладки. Оба из них наблюдают за изменением данных пожарной базы.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я выполняю UITabBarController.dismiss, слушатели, находящиеся внутри двух вкладок, все еще живы. Кто-нибудь знает, удаляет ли firebase слушателей, когда вы делаете отклонение? или я должен удалить слушателей вручную? Когда я отклоняю этот UITabBarController, я хочу уничтожить любой viewController, находящийся внутри со своими слушателями.

Я знаю, что предложение состоит в том, чтобы добавить и удалить слушателей в viewDidAppear и viewWillDissAppear, основная проблема в том, что это список людей, и я не хочу обновлять список каждый раз, когда пользователь переходит на главную страница ..

Кто-нибудь еще сталкивается с той же проблемой? С Android это просто, потому что все уничтожается с помощью метода onDestroy (), но я новичок на iOS, поэтому, возможно, я что-то упустил.

1 Ответ

0 голосов
/ 12 мая 2019

Это зависит немного.

Если вы подключите слушателя с помощью observeSingleEvent(of:, он будет автоматически удален после возвращения первых результатов.

Если вы подключите слушателя с помощью observe,он будет удален только тогда, когда вы позвоните removeObserverWithHandle.

Обратите внимание, что на Android onDestroy() не гарантированно работает, поэтому вы никогда не должны полагаться на него.Обычно, если вы хотите, чтобы ваши слушатели жили дольше, чем один вид деятельности / представление, вы должны реализовать для них собственное управление жизненным циклом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...