在下面使用Firestore中的引用对我有用的内容进行添加。
正如其他答案所说,它就像一个外键。但是reference属性不会返回参考文档的数据。例如,我有一个产品列表,其中有一个userRef参考作为产品上的属性之一。获取产品列表,可以为我提供创建该产品的用户的参考。但这并没有为我提供该参考资料中的用户详细信息。我已经将其他后端用作带有指针的服务,在此之前,该指针具有“ populate:true”标志,该标志向后提供用户详细信息,而不仅仅是用户的参考ID,这在这里非常有用(希望将来有所改进) )。
下面是一些示例代码,我用于设置参考以及获取产品集合列表,然后从给定的用户参考ID获取用户详细信息。
在集合上设置参考:
let data = {
name: 'productName',
size: 'medium',
userRef: db.doc('users/' + firebase.auth().currentUser.uid)
};
db.collection('products').add(data);
获取一个集合(产品)和每个文档上的所有参考(用户详细信息):
db.collection('products').get()
.then(res => {
vm.mainListItems = [];
res.forEach(doc => {
let newItem = doc.data();
newItem.id = doc.id;
if (newItem.userRef) {
newItem.userRef.get()
.then(res => {
newItem.userData = res.data()
vm.mainListItems.push(newItem);
})
.catch(err => console.error(err));
} else {
vm.mainListItems.push(newItem);
}
});
})
.catch(err => { console.error(err) });
希望这可以帮助