我尝试使用onSnapshot在HTML中真实的呈现结果,如下所示:
const collectionRef = collection(db, 'notes');
onSnapshot(collectionRef, (snapshot) => {
let notes = []
let html = '';
const noteList = document.querySelector('.notes');
snapshot.docs.map(function(doc) {
notes.push({ ...doc.data(), id: doc.id })
const li = `
<li>
<div class="note-title"> ${notes.title} </div>
<div class="note-content"> ${notes.content} </div>
</li>
`;
html += li
})
const noteList = document.querySelector('.notes');
noteList.innerHTML = html;
})
但是我得到的只是HTML上打印了多个“undefined”。我尝试了JSON.parse或stringify,但没有效果。我必须做什么才能在页面中打印这个新填充的“notes”数组?
PS:如果我使用${notes[0].title},我可以打印一些东西(例如第一个标题),但我坚持打印firebase中的所有值。
2条答案
按热度按时间7fhtutme1#
您正在从
notes
* 数组 * 中阅读title
和content
属性,而可以使用DocumentSnapshot#get
:(You也可以使用
doc.data().title
和doc.data().content
)os8fio9y2#
好吧,我把notes对象放在一个简单的for循环和BOOM中,它解决了这个问题(我现在觉得自己很笨,但我让它来帮助其他人):)))