gpt4 book ai didi

javascript - Firebase Firestore 'Reference' 数据类型有什么用?

转载 作者:行者123 更新时间:2023-12-03 04:22:49 29 4
gpt4 key购买 nike

我正在探索新的 Firebase Firestore,它包含一个名为 reference 的数据类型。我不清楚这是做什么的。

  • 它像外键吗?
  • 它可以用来指向位于其他地方的集合吗?
  • 如果reference是实际引用,我可以用它进行查询吗?例如,我可以有一个直接指向用户的引用,而不是将 userId 存储在文本字段中吗?我可以使用这个用户引用进行查询吗?

最佳答案

使用 Firestore 中的引用添加以下对我有用的内容。

正如其他答案所说,它就像外键。不过,引用属性不会返回引用文档的数据。例如,我有一个产品列表,其中 userRef 引用作为产品的属性之一。获取产品列表,为我提供了创建该产品的用户的引用。但它没有向我提供该引用文献中用户的详细信息。我之前使用过其他后端作为带有指针的服务,之前有一个“populate: true”标志,它返回用户详细信息,而不仅仅是用户的引用 ID,这在这里会很棒(希望 future 能有所改进) )。

下面是一些示例代码,我用来设置引用以及获取产品列表集合,然后从给定的用户引用 ID 中获取用户详细信息。

设置集合的引用:

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) });

关于javascript - Firebase Firestore 'Reference' 数据类型有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46568850/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com