Хобрук: Ваш путь к мастерству в программировании

Flutter Firestore - Конструктор потоков в построителе потоков

Я пытаюсь подсчитать количество непрочитанных сообщений. В первом streambuilder мне нужно получить все идентификаторы документа, соответствующие первому запросу.

Затем в рамках этого идентификатора документа я могу получить доступ к подколлекции в этом документе и выполнить другой запрос. Затем мне нужно получить доступ к результату этого запроса.

Однако в приведенной ниже попытке консоль выводит «прошедший первый поток», но не входит во второй streambuilder.

return StreamBuilder(
      stream: Firestore.instance
          .collection('conversations')
          .where('user_id', isEqualTo: Provider.of<User>(context).id)
          .snapshots(),
      builder: (context, snapshot) {
        if (!snapshot.hasData)
          return Center(child: CircularProgressIndicator());
        else {
          print('past first stream');
          StreamBuilder(
            stream: Firestore.instance
                .collection('conversations')
                .document('#32#0#')
                .collection('messages')
                .where('customer_message_read', isEqualTo: false)
                .snapshots(),
            builder: (context, snapshot) {
              print('im through second stream');
              if (!snapshot.hasData)
                return Center(child: CircularProgressIndicator());
              print('nope');
              QuerySnapshot querySnap = snapshot.data;
              print(querySnap.documents.length);
              return Center(child: CircularProgressIndicator());
            },
          );
          return Scaffold(
            backgroundColor: Colors.black,
            body: _children[_selectedPage],
            bottomNavigationBar: _bottomNavigationBar(context),
            resizeToAvoidBottomPadding: true,
          );
        }
      },
    );

Ответы:


1

Вы создали второй StreamBuilder, но не вернули его

11.08.2019
Новые материалы

Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

AST для разработчиков JavaScript
TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..