Flutter Firestore-Streambuilder中的Streambuilder

时间:2019-08-11 19:49:20

标签: firebase flutter google-cloud-firestore stream-builder

我正在尝试计算未读邮件的数量。在第一个streambuilder中,我需要获取与第一个查询匹配的所有文档ID。

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

但是,在控制台下面的尝试中,输出“过去的第一流”,但不输入第二个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 个答案:

答案 0 :(得分:1)

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