繁体   English   中英

是否可以在使用 flutter 查询来自 firebase 的数据时使用多个 '.where()' 语句?

[英]Is it possible to use multiple '.where()' statements in querying data from firebase using flutter?

我对 flutter 和 firebase 比较陌生。我正在尝试嵌套.where()语句以更好地过滤我的查询结果。

在我的代码中,我想查询包含在数组中的 id 字段的文档,displayName 字段也是如此。 对如何创建更复杂的查询有什么建议吗?

  Future<Stream<QuerySnapshot>> searchFriend(String loggedInUserId,
      String searchString, List<dynamic> idOfFriends) async {
    List<dynamic> searchParse = searchString.split(' ');
  

    Stream<QuerySnapshot> searchResult = await db
        .collection('Users')
        .where('id', whereIn: idOfFriends)
        .where('displayName', whereIn: searchParse)
        .snapshots();
        
    return searchResult;
  }

您可以使用多个 where 但在根据 firestore 文档编写查询时请记住这些限制。

请遵循有关限制的官方文档:

https://firebase.google.com/docs/firestore/query-data/queries#query_limitations

从那里:

每个查询最多可以使用一个innot-inarray-contains-any子句。

所以你不能在一个查询中有两个whereIn条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM