我正在尝试使用映射函数创建从集合返回的项目的数组。
我的实现是使用 forEach 进行迭代,效果很好。但是,我无法让它与 map 功能一起使用。
代码如下:
firestore.collection("notes").doc(this.props.id).collection('items').get()
.then((snap) => {
let items = []
snap.forEach((doc) => {
items.push({id:doc.id,text:doc.data().text})
console.log(`${doc.id} => ${doc.data()}`);
});
console.log(items)
});
但是,这不起作用:
firestore.collection("notes").doc(this.props.id).collection('items').get()
.then((snap) => {
let items = snap.map((doc) => {
return {id:doc.id, text:doc.data().text}
})
console.log(items)
});
它会发出“snap.map”不是函数的错误。
我不知道我在哪里绊倒了?
最佳答案
forEach方法存在,但映射不存在。
但是你可以获得 docs 的数组:
An array of all the documents in the QuerySnapshot.
您可以在其上调用 map ,如下所示:
let items = snap.docs.map(doc => {
return { id: doc.id, text: doc.data().text }
})
关于javascript - Firebase 云存储集合映射与 forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50708895/