Как получить вложенные документы с помощью streambuilder из Firestone во флаттере?

Мои данные хранятся во вложенной форме, например

Коллекция- ›Документ-› Коллекция- ›Документ-› Коллекция- ›Документ

Я получаю данные с помощью построителя потоков во флаттере. Моя цель - создать экземпляр класса, атрибуты которого распределены на всех трех уровнях коллекции / документов.

После прочтения второго уровня моя функция возвращает объект класса, имеющий частичные значения null, и показывает ошибку на экране, но через некоторое время печатает значения в последнем слое.

Я не могу использовать здесь функцию async / await из-за построителя потока.

Я попытался сделать вложенную функцию, но снова нет.

Я также пробовал функцию sleep ().

Как вы можете видеть ниже, после прочтения снимков productVariant, он пропускает цикл foreach и создает экземпляр Order и return. Однако я также печатаю значения, и они распечатываются после выполнения команды возврата.

Фрагмент кода


person Shoaib Aslam    schedule 17.11.2020    source источник
comment
Я не предлагаю ответа, но рекомендую, не выполняйте загрузку в пользовательском интерфейсе! попробуйте (по крайней мере) следовать чистому коду, а также предоставление копируемого фрагмента кода поможет людям помочь вам   -  person Francesco Iapicca    schedule 18.11.2020


Ответы (1)


Спасибо за ответы, но решение я нашел.

Я использовал вложенные FutureBuilders, которые возвращают обещанные виджеты.

Я изменил свой экземпляр Order, обновив переменные с помощью виджетов.

До

StreamBuilder - ›Получение коллекций и документов

После

StreamBuilder - ›FutureBuilder для получения коллекции / документа -› FutureBuilder - ›Для получения внутренней коллекции / документа

person Shoaib Aslam    schedule 18.11.2020