我正在使用Firebase函数编写API:api是用JavaScript编写的。
在我的firestore数据库中,我有一个用户文档,其中包含一些嵌套字段。例如,我的用户文档中的字段大致如下所示:
我一生无法访问度对象并从中获取属性。每个用户可以有多个教育条目(例如,拥有多个学位的人)。我无法进入这些教育图并访问它们所引用的文档中的字段。
答案 0 :(得分:1)
您没有提供有关确切数据模型的很多详细信息:哪个集合,哪个文档等...
但是,由于在上面的评论中,您说“个人资料是地图,教育是生活在个人资料内的地图,教育项目也是生活在教育内的地图”,因此以下方法可以解决问题
var docRef = firestore.collection('collectionId').doc('docID');
docRef
.get()
.then(doc => {
if (doc.exists) {
const educationObj = doc.data().profile.education;
const promises = [];
Object.keys(educationObj).forEach(key => {
promises.push(firestore.doc(educationObj[key].degree.path).get());
});
return Promise.all(promises);
} else {
// doc.data() will be undefined in this case
console.log('No such document!');
throw new Error('no doc');
}
})
.then(results => {
results.forEach(r => {
console.log(r.data());
});
})
.catch(error => {
console.log('Error getting document:', error);
});
degree
属性包含一个DocumentReference
,因此您需要使用path
属性才能获取相应的文档。