尝试在 google Firestore 中跨集合查询 [重复]

Posted

技术标签:

【中文标题】尝试在 google Firestore 中跨集合查询 [重复]【英文标题】:Trying to query across collections in google Firestore [duplicate] 【发布时间】:2019-01-26 14:15:56 【问题描述】:

我正在尝试根据另一个集合中保存的数据从一个集合中检索数据。如果我的出勤集合中的 userUID 等于我的学生集合中的 userUID,我想检索学生的姓名。这可能吗?

【问题讨论】:

如果你的出勤和学生收藏有相同的userId的文档,那么你可以使用WhereEqualTo(fieldName,value)db.collection("student") .whereEqualTo("userId", "idValue").get()一样查询学生 我可以将两个集合的这些查询合并到一个查询中吗?或者这怎么可能 不,不可能将两个集合的查询合并到一个查询中。 【参考方案1】:

Firestore 目前无法做到这一点。 Firestore 查询仅限于单个集合中的文档。您必须执行多次获取或查询。

【讨论】:

无论如何都可以在查询中进行查询,甚至尝试检索此数据并在两个集合之间建立连接。 如我所说,编写多个查询来获取您需要的数据。 是否可以在查询中编写一个函数来检索数据。 不,您必须执行多个查询。 此外,还有什么方法可以在其他查​​询中编写查询【参考方案2】:

根据多位 Google Firebase 工程师的说法,尽管 Firestore 文档说:

如果您需要跨集合查询数据,请使用 根级集合。

https://firebase.google.com/docs/firestore/data-model?authuser=3

我建议谷歌重写他们文档的这一部分,因为这些句子从字面上推断出相反的意思。它的内容应该是:

如果您需要跨集合查询数据,则不会发生。

【讨论】:

以上是关于尝试在 google Firestore 中跨集合查询 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Google Firestore 是缓存文档和集合还是总是请求新的?

Python Google Cloud Firestore 错误 504 Deadline Exceeded

当尝试通过云功能连接到firestore时,为什么会出现“Expected catch()或return -error”?

(firebase.firestore 不是函数)尝试在 Firestore 中创建集合时

ComponentWillUnmount取消订阅Firestore

尝试从 Firestore 获取和更新集合时发现“文档集合中未定义”