Javascript 获取firebase数据的forEach循环

Javascript 获取firebase数据的forEach循环,javascript,arrays,firebase,firebase-realtime-database,ecmascript-6,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(`Encountere

我有一个密码:

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}`);
  }
);              
我得到了错误:
uncaughttypeerror:snapshot.forEach不是一个函数
我在哪里犯了错误?
firebase版本:
^6.2.0
尝试
记录
快照并检查其是否为数组。

尝试
记录
快照并检查其是否为数组。

因为
引用
指向特定文档,您的
onSnapshot
回调将被一个没有
forEach()
的单键调用

如果附加到整个集合或查询,则会得到一个包含
forEach
方法的


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

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

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

如果附加到整个集合或查询,则会得到一个包含
forEach
方法的


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

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

什么是
snapshot
?snapshot可能是一条记录,而不是您定义的
snapshot
变量的记录数组?里面的数据是什么?尝试
记录
快照,并检查它是否为数组
快照
?快照可能是一个记录,而不是一个记录数组。您在这里定义了
快照
变量?里面的数据是什么?尝试
log
snapshot并检查它是否是数组