首页 > 解决方案 > 地图火库中的orderby数组如何颤动?

问题描述

return StreamBuilder<QuerySnapshot>(
    stream: FirebaseFirestore.instance
        .collection("posting")
        .where("authorId", isEqualTo: widget.uid)
        //.orderBy("datetime")
        .snapshots(),
    builder: (context, AsyncSnapshot<QuerySnapshot> snapshot) {
      if (!snapshot.hasData) {
        return Container();
      }
      return ListView.builder(
        itemCount: snapshot.data!.size,
        physics: BouncingScrollPhysics(),
        itemBuilder: (context, index) {
          //return Container();

          return ListView.builder(
            shrinkWrap: true,
            physics: BouncingScrollPhysics(),
            itemCount: snapshot.data!.docs[index["replyCount"],
            itemBuilder: (context, count) {
              return StreamBuilder<QuerySnapshot>(
                  stream: FirebaseFirestore.instance
                          .collection('users')
                          .where("uid",
                              isEqualTo: snapshot.data!.docs[index]["reply"]
                                  [count]["replyId"])
                          .snapshots(),
                  builder: (context, replyUser) {

例如,用户有该用户写的一些帖子。其他一些用户回复他的帖子。然后我想显示正在写帖子的用户可以查看回复警报。按回复时间排序

标签: firebasefluttergoogle-cloud-firestore

解决方案


这不起作用:

.orderBy("reply.datetime")

reply.datetime一方面,您的文档中没有字段。只有reply[0].datetime,但我怀疑您可以指定这样的数组项。

您尝试做的常见用例是按照文档的最新回复时间戳对文档进行排序。对于这种情况,惯用的方法是将最新回复的时间戳存储为文档中的顶级字段(例如latestReplyDateTime)并在该字段上排序。


推荐阅读