嘿,我嘗試解決一個問題,我需要根據之前的查詢獲取子集合。
const kurzRef = collectionGroup(db, 'kurzwaffensub' );
const FirstOperation = query(kurzRef,where("kurzModell", "==", `${kurzModell}` ));
const getWaffenDaten = async () => {
const modell = await getDocs(FirstOperation);
const data = [];
for (const doc of modell.docs) {
const parentDoc = await getDoc(doc.ref.parent.parent);
const { Name, avatarPath } = parentDoc.data();
// Thats the code snippet which I have my problem with
const waffenbilderRef = collection(db, 'users', doc.data().uid, 'waffenbildersub')
let subCollectionDocs = await getDocs(waffenbilderRef)
//
data.push({
...doc.data(),
Name,
subCollectionDocs,
avatarPath
});
我通過第一次操作獲得的檔案有一個字串欄位值 document ID
之后,我需要根據 Fieldvalue 獲取子集合,document ID
這是您可以在圖片中看到的 3個子集合之一。

不幸的是,我得到了一些我不完全理解的東西

如您所見,我得到了subCollectionDocs,但它不顯示資料。
您可以RED marked Arrow在 的結果旁邊看到2 個檔案subcollectionDocs。這是正確的,但我不知道如何正確檢索資料。
uj5u.com熱心網友回復:
您正在將DocumentSnapshot子集合查詢中的完整內容添加到您的狀態,這就是您在console.log它時顯示的內容。
我的猜測是您希望只看到檔案的資料和 ID,您可以這樣做:
const subCollectionDocs = await getDocs(waffenbilderRef)
const subCollectionData = subCollectionDocs.docs.map((doc) => {
return { id: doc.id, ...doc.data() };
}
console.log(subCollectionData);
data.push({
...doc.data(),
Name,
subCollectionData,
avatarPath
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409506.html
標籤:
