फायरस्टार में संदर्भों का उपयोग करके मेरे लिए जो काम किया गया है उसे नीचे जोड़ना
जैसा कि अन्य उत्तर कहते हैं, यह एक विदेशी कुंजी की तरह है। संदर्भ विशेषता संदर्भ डॉक्टर के डेटा को वापस नहीं करती है। उदाहरण के लिए, मेरे पास उत्पादों की एक सूची है, उत्पाद पर विशेषताओं में से एक के रूप में एक उपयोगकर्ता संदर्भ। उत्पादों की सूची प्राप्त करना, मुझे उस उत्पाद को बनाने वाले उपयोगकर्ता का संदर्भ देता है। लेकिन यह मुझे उस संदर्भ में उपयोगकर्ता का विवरण नहीं देता है। मैंने पॉइंटर्स के साथ अन्य बैक एंड का उपयोग किया है, इससे पहले कि "पॉप्युलेट: ट्रू" फ़्लैग हो, जो उपयोगकर्ता के संदर्भ आईडी के बजाय उपयोगकर्ता का विवरण देता है, जो यहाँ होना बहुत अच्छा होगा (उम्मीद है कि भविष्य में सुधार होगा )।
नीचे कुछ उदाहरण कोड हैं जो मैंने संदर्भ सेट करने के साथ-साथ उत्पादों की सूची का संग्रह प्राप्त करने के लिए उपयोग किए थे, फिर दिए गए उपयोगकर्ता संदर्भ आईडी से उपयोगकर्ता विवरण प्राप्त करें।
एक संग्रह पर एक संदर्भ सेट करें:
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) });
उम्मीद है की यह मदद करेगा