forEach循环获取数据火力地堡

时间:2019-06-20 10:11:35

标签: javascript arrays firebase firebase-realtime-database ecmascript-6

我有一个代码:

const { uid } = firebaseConfig.auth().currentUser;
const ref = db.collection('categories').doc(uid);

ref.onSnapshot(
  snapshot => {
    snapshot.forEach(item => console.log(item.data()));
  },
  err => {
    console.log(`Encountered error: ${err}`);
  }
);              

我收到错误消息:Uncaught TypeError: snapshot.forEach is not a function 我在哪里弄错了? firebase版本:^6.2.0

2 个答案:

答案 0 :(得分:0)

尝试log快照并检查其是否为数组。You might be looking for this

答案 1 :(得分:0)

由于您的ref指向特定文档,因此您的onSnapshot回调将被一个没有forEach()的单个DocumentSnapshot调用。

如果您要附加到整个集合或查询中,则会得到一个QuerySnapshot,其中 具有一个forEach方法。


如果您确实想为知道其ID的单个文档获取QuerySnapshot,则可以对文档ID进行查询:

const ref = db.collection('categories').where(firebase.firestore.FieldPath.documentId(), '==', uid)