使用where查询获取集合的子集合

时间:2019-06-01 00:04:33

标签: javascript angular firebase google-cloud-firestore angularfire2

如何获取带有where查询的集合的子集合?这是我到目前为止所做的:

  getTasksByUserId(userId) {
    this.logger.debug(`Getting tasks by user id ${userId}`);
    if (userId) {
      return this.afs.collection('tasks', ref => ref.where('createdBy', '==', userId)).valueChanges();
    }
  }

我的收藏集如下:

enter image description here

我还想在一个查询中获得featurestags的内容。

1 个答案:

答案 0 :(得分:2)

Firestore读取操作(包括查询)仅从单个集合返回文档。如果您需要从多个集合中返回结果,则将对每个集合中的文档至少执行一次读取操作。

请考虑是否确实需要将功能和标签包含在子集合中,或者是否也可以将它们作为(嵌套的)顶级tasks集合中的文档中的字段。如果确实需要将它们放在子集合中(例如,用于查询它们),请考虑在任务文档和子集合中复制数据。