【问题标题】:How to access element at index in Firestore?如何访问 Firestore 中索引处的元素?
【发布时间】:2022-01-11 22:10:32
【问题描述】:

鉴于我们数据库中的以下数据:

假设我有以下代码:

function person() {
db.collection('groups').get().then(function (querySnapshot) {
    querySnapshot.docs.forEach(function (doc) {
        console.log(doc.data().users[0].val())
    });
});

}

如何向控制台显示 email1@.com ?

当我调用 console.log(doc.data().users) 我明白了

【问题讨论】:

  • Doc.data() 应该是整个用户的集合,所以,你只需要 "doc.data()[0]" 来访问第一个元素。这是文档:firebase.google.com/docs/firestore/query-data/… 另外我建议您放入 async 函数并等待结果。
  • @ChaoticPechan 这不起作用,因为这个数组在一个更大的文档中,还有其他数据
  • 好了,打印出来了,doc.data().users[0]
  • @ChaoticPechan 我试过了,它会抛出一个错误:TypeError: Cannot read properties of undefined (reading '0')
  • 那不一样,你在哪里使用这个代码?这是因为我首先要说的是,Firestore 是异步工作的,如果您正在渲染您的网站并尝试使用该值,您将一无所获。那是因为基本上你正在调用 firestore API 并等待响应。如果你想在渲染之后或渲染时正确访问,你需要告诉 JS 等待响应。

标签: javascript firebase google-cloud-firestore


【解决方案1】:

尝试不使用val()val() doc.data().users[0].val()中的位置应该是数组元素的另一个字段:

doc.data().users[0]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多