在Cloud Firebase中运行嵌套查询



我正在处理Cloud Firestore。试着决定我是否应该在下一个项目中使用它。

我想做一个嵌套查询,但我在官方文档中找到的所有教程和示例都只查询2级深度的对象,大多数时候都是直接调用key/id。

我需要一种我相信叫做";嵌套查询";不过,我可能错了,也许这不是我刚刚开始学习的NoSQL中描述这种事情的正确短语。


这是一款用于游戏的骨架/试点应用程序,用户可以在其中创建角色,我想查询一个角色的名字是否已经取了


这是我的简单DB结构:

主集合名为"users"

"users"中,我有用户文档。

在每个用户文档中,我都有一个名为"characters"的集合

"characters"中,我有字符文档。

在每个字符文档中有两个字段,namelevel


我在查询中尝试了各种方法,我能得到的最接近的就是迭代整个过程,我认为这不是完美的解决方案

有人能帮我写一个高效的嵌套查询吗;示例名称";已经是DB中的一个现有字符,并告诉我当你想像";"无限深";嵌套查询?

如果每个用户文档都包含一个具有相同("字符"名称的子集合,那么我认为您正在寻找一个集合组查询。所以查询应该是这样的:

val queryByName = db.collectionGroup("characters").whereEqualTo("name", "Adam");

别忘了创建一个索引。

除此之外,Firestore的速度和1级一样快,也在100级。所以不用担心。

最新更新