Firestore查询没有正确排序数据



我有一个流,它从我的Firestore数据库中获取数据,并根据最新消息对它们进行排序。问题是流没有对它们进行正确排序。基本上它只获取一次数据,如果我添加一条新消息,它不会显示在顶部。知道为什么吗?

以下是我的查询:流:
 Stream<List<RoomsListModel>>? chats;

查询:

      @override
  void initState() {
    chats = FirebaseFirestore.instance
        .collection("rooms")
        .where("users", arrayContains: userId)
        .where("latestMessage", isNull: false)
        .orderBy("latestMessage")
        .orderBy("latestMessageTime", descending: true)
        .snapshots()
        .asyncMap((events) =>
            Future.wait([for (var event in events.docs) generateRoom(event)]));
    super.initState();
  }

显然,在Firestore中,您不能执行"isNull"然后订购另一个值。

是的,你可以。如果Firestore中的字段持有null值(null是受支持的数据类型),则可以对其进行查询。除此之外,当且仅当创建索引时,还可以按其他字段对结果排序。

找到了一个解决方案:所以显然在firestore中你不能做一个条件查询,如"isNull"然后订购另一个值。因此,我找到了一个解决方案:我只是将条件查询更改为&;latestmessagetime &;

相关内容

  • 没有找到相关文章

最新更新