當我洗掉 if 陳述句時,我得到資料并且 doc.data() 有效,但我需要檢查型別“添加”,所以我不會一次又一次地輸出現有資料。
使用 if 陳述句,我收到以下錯誤訊息:
未捕獲的型別錯誤:doc.data 不是函式
async getChats(callback){
const roomFilter = query(colRef, where("room", "==", this.room));
const ordered = query(roomFilter, orderBy('created_at'));
this.unsub = onSnapshot(ordered, (snapshot) => {
let items = []
snapshot.docChanges().forEach(doc => {
if(doc.type === 'added'){
items.push({ ...doc.data(), id: doc.id })
console.log(items);
callback(items);
}})
});
uj5u.com熱心網友回復:
snapshot.docChanges().forEach(doc => {
您呼叫的變數doc不僅僅是檔案。它包含有關更改的其他資訊。使用您選擇的變數名稱,您需要執行以下操作:
items.push({ ...doc.doc.data(), id: doc.doc.id })
我會考慮重命名它,也許是為了“改變”
snapshot.docChanges().forEach(change => {
if (change.type === 'added') {
items.push({ ...change.doc.data(), id: change.doc.id })
console.log(items);
callback(items);
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/445947.html
標籤:javascript 火力基地 网页包 谷歌云火库
上一篇:通知下拉選單放置到按鈕
