首页 > 解决方案 > StreamBuilder 在颤动中列出条件后,帖子的顺序不起作用

问题描述

我正在尝试构建一个评论应用程序。我试图过滤掉用户隐藏的评论,所以我有一个以下 streamBuilder 类:

return StreamBuilder(
  stream: reviewRef.snapshots(),
  builder: (context, snapshot) {
    if (snapshot.hasData) {
      final documents =
      snapshot.data.docs.where((snapshot) => snapshot.data() 
        ["hidingUserId"] == null ||
          snapshot.data()['isHiddenBy'] != 
        FirebaseAuth.instance.currentUser.uid).toList();
      if (documents.length == 0) {
        return Padding(
          padding: const EdgeInsets.only(top: 100.0),
          child: Container(
            height: 60.0,
            width: 100.0,
            child: Center(
              child: Text(language?.noReviews ?? ""),
            ),
          ),
        );
      } else {
        return ListView.builder(
          padding: padding,
          scrollDirection: scrollDirection,
          itemCount: documents.length,
          shrinkWrap: shrinkWrap,
          physics: physics,
          itemBuilder: (BuildContext context, int index) {
            return itemBuilder(context, documents[index]);
          },
        );
      }
    } else {
      return circularProgress(context);
    }
  },
);

然后在我的 readReviews 类中,我有 5 个显示所有评论的可滑动片段,由 streamBuilderWrapper 显示,我在其中对流进行排序,并根据某种顺序显示评论,例如评级 = 星或喜欢:

StreamBuilderWrapper(
      shrinkWrap: true,
      stream: reviewRef
          .orderBy('stars', descending: true)
          .orderBy('timestamp', descending: true)
          .snapshots(),
      physics: NeverScrollableScrollPhysics(),
      itemBuilder: (_, DocumentSnapshot snapshot) {
        Review review= Review.fromJson(snapshot.data());
        return review.reviewId != null
            ? Padding(
          padding: const EdgeInsets.only(bottom: 12.0),
          child: Review(review: reviews),
        )
            : Container(
          child: Center(
            child: Text('blahblahblah'),
          ),
        );
      },
    ),

但是,我在 StreamBuilderWrapper 中的排序不起作用。帖子显示了一些随机顺序,所有五个片段都相同。隐藏帖子,终于可以了!为什么订购不起作用?感谢您的帮助。

标签: fluttergoogle-cloud-firestoresnapshotstream-builder

解决方案


推荐阅读