我已經能夠檢索所有必要的物件,但是當 console.logging 它們時,它們顯示為單獨的物件,而不是在陣列中。
然后我嘗試將結果放入一個陣列中,但是由于它們被記錄為單獨的物件,因此我的陣列最終只有一個物件。
我該如何進一步進行?
我目前擁有的代碼:
onAuthStateChanged(auth, (user) => {
if (user) {
const userID = user.uid
const objectDoc = query(collection(db, "objects"), where("user", "==", userID));
const getObjectDoc = async () => {
const querySnapshot = await getDocs(objectDoc);
querySnapshot.forEach((doc) => {
let objectArr = []
console.log("Objects => ", doc.data());
objectArr.push(doc.data())
console.log(objectArr)
});
}
getObjectDoc()
} else {}
})
uj5u.com熱心網友回復:
有QuerySnapshot一個docs屬性,它將是一個陣列QueryDocumentSnapshot。您可以使用map()包含如下資料的新陣列:
const getObjectDoc = async () => {
const querySnapshot = await getDocs(objectDoc);
const dataArr = querySnapshot.docs.map((d) => ({
id: d.id,
...d.data()
}))
console.log(dataArr)
}
對于原始代碼,您let objectArr = []在每次迭代開始時都會在回圈中為空。如果您將 if 移出回圈,該功能也將起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/522383.html
