[英]Not able to access documents in a collection Firestore
我有一個來自 firestore all_categories
的對象數組。
let docID = getStoreID();
let all_categories = [];
db
.collection("STORES")
.doc(docID)
.collection("CATEGORIES")
.orderBy("CAT_ADDED_ON","desc")
.limit(5).get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
all_categories.push(doc.data())
})
})
當我console.log(all_categories)
它顯示它有 2 個對象但是當我嘗試遍歷它們時它顯示undefiened
。
像這樣:
all_categories.forEach(category => {
console.log(category)
})
控制台不打印任何內容。
可能是什么問題?
get()
是異步的(返回一個Promise
)意味着它會在完成之前轉移到另一個任務。 then()
方法返回一個Promise
。 它最多需要兩個參數:Promise 成功和失敗案例的回調函數。 因此,您必須執行以下操作才能訪問category
元素:
let docID = getStoreID();
let all_categories = [];
db
.collection("STORES")
.doc(docID)
.collection("CATEGORIES")
.orderBy("CAT_ADDED_ON","desc")
.limit(5).get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
all_categories.push(doc.data());
all_categories.forEach(category => {
console.log(category)
})
})
})
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then
從數據庫中檢索數據是一個異步過程,您可以像這樣將另一個then
附加到它,當前一個 then 完成時,它將運行后一個。
db.collection("STORES")
.doc(docID)
.collection("CATEGORIES")
.orderBy("CAT_ADDED_ON","desc")
.limit(5)
.get()
.then((querySnapshot) => { querySnapshot.forEach((doc) => { all_categories.push(doc.data())})
.then(()=>{ all_categories.forEach(category => { console.log(category) })
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.