【问题标题】:Get documents name in Firestore and create nested object在 Firestore 中获取文档名称并创建嵌套对象
【发布时间】:2021-12-15 12:40:44
【问题描述】:

这个问题与这个问题有关:Get documents names in Firestore 但我还不能发表评论。

我正在尝试从我的 FireStore 中获取一个嵌套对象,看起来像这样

{"docname1": {…}, "docname2": {…}, "docname3": {…}}

我现在有了这个,但似乎无法弄清楚如何创建嵌套对象以将其推送到空数组中。

 useEffect(() => {
    const getPlants = async () => {
        let response = []
        const querySnapshot = await firebase
            .firestore()
            .collection('plants')
            .get()
        querySnapshot.forEach((doc) => {
            let newObject = [doc.id: doc.data() ]
            response.push(newObject)
        })

        setPlants(response)
    }
    getPlants()
}, [])

非常感谢任何帮助:)

【问题讨论】:

    标签: javascript arrays reactjs firebase google-cloud-firestore


    【解决方案1】:

    我认为你创建新对象(newObject)是错误的。尝试像这样创建它:

       querySnapshot.forEach((doc) => {
           const newObject = {}
           newObject[doc.id] = doc.data()
           response.push(newObject)
       })
    

    或者,您可以这样做:

       querySnapshot.forEach((doc) => {
           response.push({ [`${doc.id}`]: doc.data() })
       })
    

    【讨论】:

    • 我一直在努力创建对象,但这就像一个魅力。非常感谢您的帮助:)。
    • 下一个问题出现了;映射嵌套数组。我已经创建了这个沙盒:codesandbox.io/s/spring-fast-w0tt4?file=/src/App.js 任何线索如何显示名称?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多