小编san*_*jay的帖子

如何在Streambuilder中查询Firestore文档并更新ListView

我正在尝试从名为“帖子”的Firestore集合中检索帖子,其中包含帖子创建者的用户ID和帖子说明,并且可以通过同时使用StreamBuilder和FutureBuilder来实现。字段更改时更新)。

但是,我想用帖子创建者的用户ID查询另一个名为“用户”的集合,并检索与该用户ID匹配的文档。

这是我的第一种方法:

StreamBuilder<QuerySnapshot>(
  stream:Firestore.instance.collection("posts").snapshots(),
  builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
    if (!snapshot.hasData) {
      return Center(
        child: _showProgressBar,
      );
    }

   List<DocumentSnapshot> reversedDocuments = snapshot.data.documents.reversed.toList();
    return ListView.builder(
      itemCount: reversedDocuments.length,
      itemBuilder: (BuildContext context, int index){

        String postAuthorID = reversedDocuments[index].data["postAuthorID"].toString();
        String postAuthorName = '';
        Firestore.instance.collection("users")
        .where("userID", isEqualTo: postAuthorID).snapshots().listen((dataSnapshot) {
            print(postAuthorName = dataSnapshot.documents[0].data["username"]);
          setState(() {
            postAuthorName = dataSnapshot.documents[0].data["username"];                  
          });
        });

        String desc = reversedDocuments[index].data["post_desc"].toString();

        return new ListTile(
          title: Container(
            child: Row(
              children: <Widget>[
                Expanded(
                  child: Card(
                    child: new …
Run Code Online (Sandbox Code Playgroud)

listview dart flutter google-cloud-firestore

6
推荐指数
2
解决办法
3791
查看次数

标签 统计

dart ×1

flutter ×1

google-cloud-firestore ×1

listview ×1