【问题标题】:Filtering Stream depending on document field value根据文档字段值过滤流
【发布时间】:2021-07-26 11:42:37
【问题描述】:

我正在开发一个从 Cloud Firestore 获取数据的 Flutter 项目。

这是我获取所有数据的流:

//Get Entries
  Stream<List<Evento>> getEventos(){
    return _db
        .collection('eventos')
        .snapshots()
        .map((snapshot) => snapshot.docs
        .map((doc) => Evento.fromJson(doc.data()))
        .toList());
  }

这可以很好地获取所有集合项,但是我的项目中有一个屏幕,我需要在其中获取与字段值匹配的项。

这里你有一个集合'eventos'中的文档结构:

我只需要获取字段“interes”等于特定字符串的文档,例如“bares”或“restaurantes”。

我应该如何更改 getEventos() 以让我根据字段 'interes' 的值进行过滤?

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    您可以使用 whereIn 运算符进行查询:

    Stream<List<Evento>> getEventos(){
      return _db
          .collection('eventos')
          .where('interes', whereIn: ['bares', 'restaurantes'])
          .snapshots()
          .map((snapshot) => snapshot.docs
          .map((doc) => Evento.fromJson(doc.data()))
          .toList());
    }
    

    此查询将返回兴趣值为bares 或restaurantes 的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      相关资源
      最近更新 更多