Куда я должен поместить код обратного вызова firebase?

#ios #firebase

# #iOS #firebase

Вопрос:

У меня есть общий организационный вопрос относительно того, где разместить код обратного вызова для наблюдателя. Я все еще изучаю интеграцию firebase в swift, так что будьте проще.

Когда я организовывал свой код, я размещал наблюдателей в VC, из которого будут использоваться прочитанные данные. Например, у меня есть VC, который показывает tableview, и у меня есть наблюдатель в этом VC, который заполняет массив, который используется в tableview. Если в базу данных в этом местоположении наблюдателя добавляется дополнительная информация, этот наблюдатель запускается, и таблица обновляется.

Вот как я структурировал свой код, но теперь у меня ситуация, когда существует наблюдатель для обновления основного элемента данных, т.Е.. он не привязан ни к одному VC. В этой ситуации, где я должен разместить код?

Прошу прощения за фундаментальный вопрос, я просто хочу сделать это правильно.

Спасибо!

Комментарии:

1. Ваш вопрос касается не только Firebase, но и в целом архитектуры приложения. Существует несколько способов решения этой проблемы. Вы можете посмотреть, например, VIPER как шаблон архитектуры: medium.com/@smalam119 /. … В общем случае вам нужен наблюдаемый объект за пределами вашего VC, например, синглтон, который вводится в ваш VC там, где это необходимо.

2. У вас есть ситуация, когда ваше приложение существует без ViewController? Как вы обрабатываете взаимодействия с CoreData?

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

4. Я думаю, вы ответили на свой собственный вопрос. Если у вас есть обработчик основных данных, у вас также должен быть обработчик firebase, чтобы они могли взаимодействовать, верно?

5. но в моем основном обработчике данных просто есть функции, которые я вызываю из VC. куда бы я поместил код наблюдателя в обработчике основных данных, если это просто набор функций? (У меня также есть обработчик FB, и структура такая же, как для обработчика основных данных)