【发布时间】: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 ?
【问题讨论】:
-
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