Flutter Firebase Firestore 固定消息查询

问题描述 投票:0回答:1

我有这样的疑问

Query<Map<String, dynamic>> pageChat = _fireStore
        .collection('chat')
        .where('chatUsersId', arrayContains: firebaseUser!.uid)
        .where('chatStatus', isEqualTo: true)
        .orderBy('lastMessageDate', descending: true)
        .limit(10);

通过什么逻辑可以查询固定消息?有一个名为 chatUsersId 的数组,还有一些保存成员 ID 的字段,称为 chater 和pairer。我想用两个名为chaterPinned:true和pairerPinned:true的字段来解决它,但我不知道可以使用什么逻辑来查询它。

flutter firebase dart google-cloud-firestore
1个回答
0
投票

这听起来像是查询中使用 OR 条件的好例子。

类似:

_fireStore
  .collection('chat')
  .where(
    Filter.or(
      Filter.and(
        Filter('chatUsersId', arrayContains: firebaseUser!.uid)
        Filter('chatStatus', isEqualTo: true)
      ),
      Filter('chaterPinned', isEqualTo: true),
      Filter('pairerPinned', isEqualTo: true)
    )
  )
  .orderBy('lastMessageDate', descending: true)
  .limit(10);
© www.soinside.com 2019 - 2024. All rights reserved.