我一直得到这个错误:
Uncatch(in promise)TypeError:无法读取未定义的属性“forEach”
尝试在HTML中显示Firebase Firestore中的值时。它应该在页面上显示“doc.id”用户的名称,但我得到了前面显示的错误。这是我的Firebase数据库布局:
HTML代码:
<div class="container">
<ul class="friends">
</ul>
</div>
JavaScript代码:
firebase.auth().onAuthStateChanged(function(user) {
var uid = firebase.auth().currentUser.uid;
var ref = firebase.firestore().collection('users').doc(uid).collection('friends');
ref.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
var friends = doc.get('friends');
if (friends === true) {
console.log(uid, doc.id);
var docRef = db.collection('users').doc(doc.id);
docRef.get().then(snapshot => {
setupPosts(snapshot.docs)
})
const posts = document.querySelector('.friends');
const setupPosts = (data) => {
let html = '';
data.forEach(doc => {
const post = doc.data();
const li = `
<li>
<div class="title">${post.fullname}</div>
</li>
`;
html += li
})
posts.innerHTML = html;
}
}
})
})
});
1条答案
按热度按时间olmpazwi1#
问题就出在这里:
docRef.get()
调用检索单个文档,这意味着您将得到一个DocumentSnapshot
对象,该对象没有forEach
方法。如果您希望加载所有用户:
如果只想加载和设置一个文档: