Menambahkan di bawah ini apa yang berhasil bagi saya menggunakan referensi di Firestore.
Seperti jawaban yang lain katakan, itu seperti kunci asing. Atribut referensi tidak mengembalikan data dari dokumen referensi. Sebagai contoh, saya punya daftar produk, dengan referensi userRef sebagai salah satu atribut pada produk. Mendapatkan daftar produk, memberi saya referensi pengguna yang menciptakan produk itu. Tetapi itu tidak memberi saya rincian pengguna dalam referensi itu. Saya telah menggunakan ujung belakang lain sebagai layanan dengan pointer sebelum yang memiliki bendera "populate: true" yang memberikan rincian pengguna kembali, bukan hanya id referensi pengguna, yang akan lebih baik untuk memiliki di sini (semoga perbaikan di masa depan ).
Di bawah ini adalah beberapa contoh kode yang saya gunakan untuk mengatur referensi serta mendapatkan koleksi daftar produk kemudian mendapatkan detail pengguna dari id referensi pengguna yang diberikan.
Tetapkan referensi pada koleksi:
let data = {
name: 'productName',
size: 'medium',
userRef: db.doc('users/' + firebase.auth().currentUser.uid)
};
db.collection('products').add(data);
Dapatkan koleksi (produk) dan semua referensi pada setiap dokumen (detail pengguna):
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) });
Semoga ini membantu