基于键值查询Firestore数据:获取匹配指定学生ID的班级记录
Firestore查询包含指定学生ID的班级记录
你的Firestore班级文档中,students字段是嵌套对象结构,学生ID作为对象的键(对应你截图里红圈标注的内容)。当前的查询写法where("students.key", "==", "6CgDymxFqFVgTLef2IMhlu5Sxlm2")是错误的,因为这里的key并不是固定字段名,你要匹配的是动态的学生ID键。
正确的做法是使用Firestore的exists操作符,检查指定学生ID作为键是否存在于students对象中:
const studentId = "6CgDymxFqFVgTLef2IMhlu5Sxlm2"; const q = query(classessRef, where(`students.${studentId}`, "exists", true)); const querySnapshot = await getDocs(q);
这个查询会匹配所有students字段中包含该学生ID作为键的班级文档,不管该键对应的值是什么,只要存在就会被返回。
内容的提问来源于stack exchange,提问作者Neel Dsouza
相关产品推荐
相关产品推荐

