. Diğer cevaplarda da belirtildiği gibi, yabancı anahtar gibidir. Referans özelliği, referans dokümanın verilerini döndürmez. Örneğin, üründeki bir özellik olarak userRef referansına sahip bir ürün listem var. Ürünlerin listesini almak bana o ürünü oluşturan kullanıcının referansını verir. Ama bana bu referansta kullanıcının detaylarını vermiyor. Kullanıcının referans kimliği yerine kullanıcı ayrıntılarını geri veren bir "populate: true" bayrağı daha önce işaretçileri olan bir hizmet olarak diğer arka uçları kullandım.). Aşağıda
Sonra verilen kullanıcı referans kimliğine kullanıcı bilgilerini almak referansını ayarlamak yanı sıra ürünlerin listesinin koleksiyonu almak için kullanılan bazı örnek kodudur.
Set koleksiyonu referans:
let data = { name: 'productName', size: 'medium' }
data.userRef = db.doc('users/' + firebase.auth().currentUser.uid);
db.collection('products').add(data);
bir koleksiyon (ürünler) ve her belgenin tüm referansları (kullanıcı bilgileri) alın:
db.collection('products').get()
.then((res) => {
vm.mainListItems = [];
res.forEach(doc => {
var newItem = doc.data();
newItem.id = doc.id;
if (newItem.userRef) {
newItem.userRef.get()
.then(res => { newItem.userData = res.data() })
.catch(err => console.error(err));
}
vm.mainListItems.push(newItem);
});
})
.catch((err) => { console.error(err) });
Umut bu
yardımcı olur
Lütfen olası kullanım durumlarını paylaşabilir misiniz? Bu referanstaki alanları sorgulamak mümkün mü? Örneğin. Bütün arkadaşlarımı ('friends/myId') listeleyen bir 'arkadaşlar' koleksiyonum var. Ardından, bu belgeyi başka bir belgenin '' '' alanındaki '' alanına ('group/groupId') gönderiyorum. Sadece bu grupta yer alan arkadaşlarımı, şöyle bir şey yapmak istiyorum: 'Nerede ('friends.myId', '==', true)'. – Will
Btw, bir referans türü ekleme örneği eklemek için [docs] 'u (https://firebase.google.com/docs/firestore/manage-data/add-data) güncelleştirmek yararlı olabilir. – Will
Bu konuda herhangi bir bilgi bulamıyorum? Bu tüm veritabanı yapısını değiştirecek, daha fazla bilmem gerek ... – Ruben