Firebase 云Firestore查询文档及其集合

Firebase 云Firestore查询文档及其集合,firebase,firebase-realtime-database,google-cloud-firestore,nosql,Firebase,Firebase Realtime Database,Google Cloud Firestore,Nosql,我在cloud firestore中有以下数据: /Tasks 身份证 名称:string 描述:字符串 受让人(每个任务内的受让人集合) 在查询我的任务时,我只得到名称、描述等基本数据。但不是任务中的assignees集合。 是否有一种方法可以通过一次读取获取“整个”任务文档/对象 我不想对每个任务执行“[taskId]/assignees”提取。我不知道您的平台是什么,但访问子集合只是定义该集合的路径的问题 例如,如果您想访问assignees子集合,路径可以这样定义(Swift

我在cloud firestore中有以下数据:

/Tasks

  • 身份证

  • 名称:string

  • 描述:字符串

  • 受让人(每个任务内的受让人集合)

在查询我的任务时,我只得到名称、描述等基本数据。但不是任务中的assignees集合。 是否有一种方法可以通过一次读取获取“整个”任务文档/对象


我不想对每个任务执行“[taskId]/assignees”提取。

我不知道您的平台是什么,但访问子集合只是定义该集合的路径的问题

例如,如果您想访问assignees子集合,路径可以这样定义(Swift,但跨平台的概念是相同的)

我不想为每个任务执行“[taskId]/assignees”提取

因此,您可以通过这种代码流在代码中处理它

iterate over tasks
   read the assignees collection for each task
或者,您可以更改模型并在每个任务中存储受让人。您可以使用一个数组,甚至是一个映射来封装受让人

task_id          //document
   assignees     //map
      assignee_0 //map
         name    //field
      assignee_1 //map
         name    //field
当任务文档被读取时,被分配者将是一个可以读取的字段。在这里,我将
assignees
字段读入一组字典,并对它们进行迭代

let assignees = doc.get("assignees") as! [String: Any]
for a in assignees {
   print(a.key, a.value)
}

这回答了你的问题吗?
let assignees = doc.get("assignees") as! [String: Any]
for a in assignees {
   print(a.key, a.value)
}