[英]How to get values from a document based on a reference in Firestore?
我在 Firestore 中有两个 collections, contacts
和techs
,其中一个 contacts 值是对其中一个 techs 文档的引用,我使用路径collection name + id
设置此引用,这是我在获取techs
之后得到的:
db.doc('techs/'+iconId)
可以看出它有效:
我可以毫无问题地检索它:
const getContacts = () => {
return db.collection('contacts').get()
}
window.addEventListener('DOMContentLoaded', async e => {
const querySnapshot = await getContacts()
querySnapshot.forEach(doc => {
console.log('Reference value')
console.log(doc.data().icon)
console.log('Reference path')
console.log(doc.data().icon.path)
})
})
但是我找不到一种方法来使用此引用来实际获取它在techs
集合中指向的值。
我怎么能做到这一点?
icon
字段本身实际上是一个DocumentReference
,因此您可以对其调用get()
来检索它所引用的文档。
不幸的是,你不能。 您将不得不编写另一个查询,该查询采用字符串值的一部分,即 techs 集合中的文档 ID。
const getTechs = (Id) => {
db.collection('techs').doc(id).get().then(res=>{
console.log(res.data())
})
}
const getContacts = () => {
return db.collection('contacts').get()
}
window.addEventListener('DOMContentLoaded', async e => {
const querySnapshot = await getContacts()
querySnapshot.forEach(doc => {
console.log('Reference value')
console.log(doc.data().icon)
console.log('Reference path')
console.log(doc.data().icon.path)
const path = doc.data().icon.path
const id = path.split('/').pop()
getTechs(id)
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.