【问题标题】:Get nested data from Firebase Firestore从 Firebase Firestore 获取嵌套数据
【发布时间】:2021-10-09 16:46:44
【问题描述】:

这是我获取数据的方式:

目前当我console.log(snapshotData.data); 我得到一个数组:

我想要得到的是 editorState, blocks, 0, text。我尝试使用snapshotData.data.editorState.blocks.[0].textsnapshotData.data.editorState.blocks.0.text 获取它,但没有成功

再次,我想得到这个:

在 Firestore 上说:editorState 是地图,块 -> 数组,0 -> 地图,文本 -> 字符串

【问题讨论】:

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


【解决方案1】:

通过使用可选链接修复

  console.log(snapshotData?.data?.editorState?.blocks[0]?.text);

【讨论】:

    【解决方案2】:

    试试

    // if blocks is an Array
    snapshotData.data.editorState.blocks[0].text
    

    // if '0' is a key corresponding to the smaller object
    snapshotData.data.editorState.blocks["0"].text
    

    更新

    根据上传的截图,blocks实际上是一个包含单个对象的数组。

    你应该使用我提供的第一个代码块,即

    snapshotData.data.editorState.blocks[0].text
    

    【讨论】:

    • 是的,blocks 是一个数组,我尝试使用第一个代码示例但它不起作用,我得到这个错误:TypeError: Cannot read properties of undefined (reading 'editorState')
    • 您确定 snapshotData.data 对应于您在 Firebase Firestore 上看到的数据吗?
    • 对于我的项目,我对 firestore 数据的访问如下:
    • const DataRef = admin.firestore().collection( <collection name> );
    • DataRef.get().then( item => item.docs[0].data() )
    猜你喜欢
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    相关资源
    最近更新 更多