【问题标题】:Cloud Firestore OR queryCloud Firestore OR 查询
【发布时间】:2020-09-20 03:50:32
【问题描述】:

如何从 firebase 获取多个文档?我想获取列表中的所有文档。

我只能运行下面的查询,而不是一个列表,我将它传递给所有者字段的单个项目,因为 isMemberOf 不是真正的运算符。我把它放在那里,就像我想象的那样。

现在我只能传递一个值并使用 isEqualTo: 而不是我的组合运算符。

我该怎么做?

 Stream<List<Event>> subscribeToEventsByDates(
      List<String> users, DateTime start, DateTime end) {
    return Firestore.instance
        .collection('events')
 ----> SELECT * (all that match) <------- doesn't exist? How to do this?
        .where('owner', isMemberOf: users) 
        .where('start', isGreaterThanOrEqualTo: start)
        .where('start', isLessThanOrEqualTo: end)
        .snapshots()
        .map((snapshot) => snapshot.documents
            .map((event) => Event.fromJson(event.data))
            .toList());
  }

【问题讨论】:

    标签: firebase dart google-cloud-firestore


    【解决方案1】:

    如果您想将字符串数组传递给过滤器以匹配给定字段中的任何一个,则称为"in" query

    API documentation for where() 建议您应该为此使用“whereIn”。

    .where('owner', whereIn: users) 
    

    来自documentation on in queries

    使用 in 运算符将同一字段上的最多 10 个相等 (==) 子句与逻辑 OR 组合起来。

    【讨论】:

      猜你喜欢
      • 2021-04-27
      • 1970-01-01
      • 2018-03-25
      • 2021-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多