我有一个Vue 3应用程序,使用Firebase auth和FiRestore来记录马里奥卡丁车比赛的结果.这只是一个有趣的附带项目,目的是更好地了解Vue和Firebase.

我对任何关系数据库都不陌生,过go 主要使用MySQL/MariaDB和MSSQL.

我有一个名为"Games"的父集合,其中包含用于各种游戏设置值的字段,还有一个名为"Players"的子集合,用于记录每个球员在奖杯中的得分和名次.

getDocs(collection(db, "games"))返回所有的"games"记录,但是"players"子集合没有被加载.

有没有办法将子集合与父集合一起返回子集合,或者我是否需要执行子查询,比如

getDocs(collection(db, "games")).then((response) => {
  response.forEach((doc) => {
    //do sub query here?
  });
});

如果我需要执行子查询,为什么不干脆让"玩家"作为父集合,同时使用指向游戏记录的"Game_id"字段呢?

我已经通读了FiRestore文档,并观看了几个关于不同数据 struct 方法的视频,但我就是不感兴趣.

抱歉,如果这是个低级的问题.谢谢你的帮助.

推荐答案

GetDocs(Collection(db,"Games"))返回所有的"Games"记录,但不加载"players"子集合.

是的,那是意料之中的事.FiRestore的查询数为Shallow,这意味着它将只获得您直接指定的集合. 请参见:

Firestore: Does querying a collection also includes their sub collection?

如果我需要执行子查询,为什么不干脆让"玩家"作为父集合,同时使用指向游戏记录的"Game_id"字段呢?

是的,你绝对可以做到.

Vue.js相关问答推荐

是否可以使用 Vuetify/VueJS 为轮播设置默认图像而不是第一个图像?

vue3 ssr 不返回纯 html

路径别名在 vue 脚本块中不起作用

禁用 vue-cli webpack 编码图像 base64

云Firestore保存额外的用户数据

如何根据生产或开发模式读取不同的 .env 文件?

Django Rest 框架、CSRF 和 Vue.js

请求正在进行时显示加载器

使用 Vue.js 的用户可切换自定义主题

Vue Prop 没有初始化器,也没有在构造函数中明确赋值

Vue devServer 代理没有帮助,我仍然收到 CORS 错误

基于媒体查询的vue绑定值

vue 3 使用 Vuex 和路由的服务器端渲染

在找不到图像源时设置替代图像

Vue在按钮单击时添加一个组件

构建 Vue.js 应用程序时 JavaScript 堆内存不足

Vue.js webpack:如何获取目录中的文件列表?

使用 vuejs 动态设置 id 标签

如何在 VeeValidate 中自定义错误信息(字段名称)?

如何将单选按钮绑定到 vuex store ?