我刚接触Firebase,并且尝试从另一个集合中的引用文档中检索数据以显示出来。 https://drive.google.com/file/d/1CcGCPgO9JVd6iCA_1FHfO95J2_E19Z0I/view?usp=sharing https://drive.google.com/file/d/1tM5g_A8jcfKTMWMczaS_35gjNcDn_Ho1/view?usp=sharing
这是我添加学生和家长ID的方式
const newStudent = {
name: req.body.name,
grade: req.body.grade,
//status: `no parent request`,
parentId:db.doc(req.body.parentId),
gender:req.body.gender,
//parentName:req.body.parentName,
transporation:req.body.transporation,
userHandle: req.user.handle
};
我想做的是检索我在学生文档中引用的父母的名字, 我尝试了以下方法,但是它给了我父母的整个快照,我尝试了很多方法,但是它们都不起作用
(req, res) => { db.collection("students")
[.orderBy("grade", "desc")
.get()
.then((data) => {
let students = \[\];
//const {parentname} = db.collection('parent').doc.data().name;
data.forEach((doc) => {
var parentId = doc.data().parentId.id;][1]
db.collection("parent").get().then((pdata) => {
pdata.forEach((pdoc) => {
students.push({
parentname: parentId});});});
students.push({
studentId: doc.id,
name: doc.data().name,
grade: doc.data().grade,
//parentName:parentname
// parentName:doc.data().parentId.id,
});
});
return res.json(students); })
任何建议或帮助都非常感谢。
答案 0 :(得分:2)
在这里,您正在调用的是文档中的全部数据。
因此,您必须显式调用文档的特定对象。
//TODO: change the docName to desired document id
db.collection("parent").doc('docName').collection('name').get().then((pdata) => {
pdata.forEach((pdoc) => {
students.push({
parentname: parentId});});});
students.push({
studentId: doc.id,
name: doc.data().name,
grade: doc.data().grade,
//parentName:parentname
// parentName:doc.data().parentId.id,
});
这里我指的是要检索其数据的特定文档。