Firestore'daki referansları kullanarak benim için neyin işe yaradığını ekleyerek.
Diğer cevapların dediği gibi, yabancı bir anahtar gibi. Reference özniteliği, referans dokümanın verilerini döndürmez. Örneğin, bir kullanıcı listesi ürün üzerindeki özniteliklerden biri olarak bir userRef başvuru ile bir listesi var. Ürünlerin listesini almak, o ürünü oluşturan kullanıcının referansını verir. Ama bana bu referanstaki kullanıcının detaylarını vermiyor. Diğer arka uç işaretçiler ile bir hizmet olarak daha önce burada olması çok iyi olurdu, kullanıcının sadece referans kimliği yerine kullanıcı ayrıntılarını veren "populate: true" bayrağı olan bir hizmet olarak kullandım ).
Aşağıda referans ayarlamak için yanı sıra ürün koleksiyonu almak ve daha sonra verilen kullanıcı referans kimliğinden kullanıcı bilgilerini almak için kullanılan bazı örnek kod aşağıdadır.
Bir koleksiyona referans belirleyin:
let data = {
name: 'productName',
size: 'medium',
userRef: db.doc('users/' + firebase.auth().currentUser.uid)
};
db.collection('products').add(data);
Bir koleksiyon (ürünler) ve her belgedeki tüm referansları alın (kullanıcı bilgileri):
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) });
Bu yardımcı olur umarım