Firebase云存储集合映射与forEach

sma*_*ert 2 javascript firebase google-cloud-firestore

我正在尝试使用map函数来创建从集合返回的项的数组.

我的实现是使用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)
});
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用:

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)
});
Run Code Online (Sandbox Code Playgroud)

它会发出'snap.map'不是函数的错误.

我无法弄清楚我在哪里绊倒?

Jai*_*mez 5

的forEach方法存在,但不映射.

但是,您可以获得一系列文档:

QuerySnapshot中所有文档的数组.

您可以在其中调用map,如下所示:

let items = snap.docs.map(doc => {
    return { id: doc.id, text: doc.data().text }
})
Run Code Online (Sandbox Code Playgroud)