Когда вы выполняете:
FirebaseFunctions.getInstance(...).getHttpsCallable(...).call()
Вызов возвращается асинхронно, и работа по доступу к функции происходит в неосновном потоке, управляемом SDK. Вы не можете изменить это поведение, и запуск его в другой области сопрограммы на самом деле ничего не меняет.
Когда вы добавляете продолжение с помощью continueWith
, по умолчанию обратный вызов выполняется в основном потоке.
Только когда вы вызовете await()
в возвращенной задаче, что-либо произойдет в области сопрограммы, которую вы использовали для запуска задачи. Когда вы ждете повторных запусков, результат передается сопрограмме для дальнейшей обработки.
Для вашего кода я бы не стал пытаться использовать продолжение, так как передача результата в основной поток бесполезна вообще здесь. Просто дождитесь задачи, возвращаемой вызовом, и делайте все, что хотите, с необработанным результатом в сопрограмме.