Добавляя ниже, что работает для меня, используя ссылки в Firestore.
Как говорят другие ответы, это как внешний ключ. Ссылочный атрибут не возвращает данные справочного документа. Например, у меня есть список продуктов со ссылкой на userRef в качестве одного из атрибутов продукта. Получение списка продуктов дает мне ссылку на пользователя, который создал этот продукт. Но это не дает мне детали пользователя в этой ссылке. Я использовал другой бэкэнд в качестве сервисов с указателями, у которых до этого был флаг «populate: true», который возвращает данные пользователя, а не просто ссылочный идентификатор пользователя, что было бы здорово иметь здесь (надеюсь, в будущем улучшении). ).
Ниже приведен пример кода, который я использовал для задания ссылки, а также для получения списка продуктов, а затем для получения сведений о пользователе по указанному идентификатору ссылки.
Установить ссылку на коллекцию:
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) });
Надеюсь это поможет