首页 > 解决方案 > 如何访问子节点 Firestore——未定义 forEach 函数

问题描述

我正在尝试遍历 Firestore 中给定集合的节点,但它似乎不起作用。我是 Javascript 的新手,所以数据结构对我来说不是很清楚。

以下代码是我的尝试。我失败了,因为它出现了一个错误,告诉我该forEach()函数未定义。但是,这对我来说没有意义。该文档显示 get 函数的返回是 Promise<QuerySnapshot>. 在序列上,此文档显示了 QuerySnapshot 对象的方法,并显示了该forEach方法。

 var myarray = firebase.firestore().collection('cards').get();  
 myarray.forEach( k => {
    console.log(k)
 });

我来这里寻求帮助。有人可以解释一下为什么给定对象的 forEach 方法不存在,我如何遍历cards集合上的子节点,以便检查它们的属性?

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


firebase.firestore().collection('cards').get().then(snapshot => {

    snapshot.forEach(doc => {
        console.log(doc.data());
    });

});

then() 方法返回一个 Promise。基本上,您需要等到从 firebase 返回数据后才能访问和使用它。然后你只需要遍历从 promise 返回的快照。


推荐阅读