javascript - Firebase 云存储集合映射与 forEach

标签 javascript firebase google-cloud-firestore

我正在尝试使用映射函数创建从集合返回的项目的数组。

我的实现是使用 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/

相关文章:

javascript - 如何重复 Firestore 查询直到满足条件?

javascript - ExpressJS 中的错误处理

javascript - 返回 Promises 数组的函数类型应该是什么

firebase - 如何遍历 Firebase datasnapshot 子子项? flutter

ios - FireBase iOS queryOrderedByChild 不工作

angular - 如何在 Angular Firestore 中将日期保存为时间戳?

python - 在 Apache Beam 中导入 Google Firestore Python 客户端

javascript - 使用iron-ajax (Google Polymer) 上传文件

javascript - 无法更改 innerHTML 元素

javascript - 如何一次将一堆数据推送到firebase数据库中