Firebase асинхронная функция, что находится в фоновой очереди, а что нет
Допустим, у меня есть это
// a bunch of code...
FIRDatabase.database.reference.child("somechild").observeSingleEventOfType(.Value, withBlock{(snapshot) in
//some code inside of the completion handler})
Пожалуйста, не читайте слишком много во фрагменте кода, запрашивая больше кода, мне нужен только короткий ответ. Там, где написано «куча кода», предположим, что на самом деле это некоторый код, который находится в очереди MAIN. Теперь, когда я записываю обработчик завершения Firebase наблюдающего единого события, мой анализ этого таков.
Наблюдение за SingleEvent извлекает снимок из фоновой очереди, чтобы не блокировать пользовательский интерфейс в основной очереди.
Как только он получает снимок, блок кода после «in» теперь возвращается в очередь MAIN, поэтому можно поместить туда любой код, связанный с пользовательским интерфейсом.
Все мое приложение основано на этих рассуждениях, поэтому, если я ошибаюсь, пожалуйста, скажите мне, что на самом деле происходит.