繁体   English   中英

如何根据 Firestore 中的引用从文档中获取值?

[英]How to get values from a document based on a reference in Firestore?

我在 Firestore 中有两个 collections, contactstechs ,其中一个 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM