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并检查它是否是数组