微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Cloud Firestore 查询文档及其集合

如何解决Cloud Firestore 查询文档及其集合

我在 Cloud Firestore 中有以下数据:

/任务

  • id

  • 名称:字符串

  • 描述:字符串

  • assignees(每个任务中的受理人的集合)

查询我的任务时,我只得到基本数据,如名称、描述。但不是任务中的assignees-collection。 有没有办法通过一次读取获取“整个”任务文档/对象?

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

解决方法

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

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

let tasksCollectionRef = self.db.collection("Tasks")
let taskDocRef = collectionRef.document("some task id")
let assigneesSubCollectionRef = userDoc.collection("assignees")

assigneesSubCollectionRef(completion: { documentSnapshot,error in
    //do somethingn with the documents within assignees

我不想为每个任务执行“[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)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?