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) });
도움이 되었기를 바랍니다