如何从Firebase中的引用文档中检索数据?

时间:2020-07-23 15:55:51

标签: javascript node.js firebase google-cloud-firestore

我刚接触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); })

任何建议或帮助都非常感谢。

1 个答案:

答案 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,
    
  });

这里我指的是要检索其数据的特定文档。