簡體   English   中英

無法訪問 Firestore 集合中的文檔

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM