0

我正在尝试计算未读消息的数量。在第一个流构建器中,我需要获取与第一个查询匹配的所有文档 ID。

然后,在该文档 ID 中,我可以访问该文档中的子集合并执行另一个查询。然后我需要访问该查询的结果。

但是,在控制台下方的尝试中输出“过去的第一个流”,但没有进入第二个流构建器。

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,
          );
        }
      },
    );
4

1 回答 1

2

您已经创建了第二个StreamBuilder,但没有返回它

于 2019-08-11T20:23:34.250 回答