所以我遇到了一個問題,我無法想到如何在父/第一個集合中添加另一個集合讓我們說圖表應該看起來像這樣
owner-item:
group-item: [],
single-item: []
讓我們說它firebase-collection.js看起來像這樣
import { collection } from 'firebase/firestore'
import { db } from './firebase'
export const owneritemsRef = collection(db,'owner-items')
然后現在我正在通過類似這樣的方式匯出集合
let uploadUserStorageTask = uploadBytesResumable(list[i],pictures[j].data)
....
},(err) => {
console.log(err)
},() => {
getDownloadURL(uploadUserStorageTask.snapshot.ref)
.then(async (downloadURL) => {
await setDoc(doc(db,`owner-items`,`${currentUser?.email}-${uid}`),{
creator:username,name:name,img:downloadURL,email:currentUser?.email
})
.then( res => {})
.catch(err => {})
})
})
但是因為我有組影像,所以我希望它們設定在組項集合中,但我認為await setDoc我應該添加其他東西以使其像owner-item父集合中的組項集合,但我該怎么做呢?
我搜索與它相關的東西,它可能是這樣的?LINK ...但我想要setDoc,因為我可以改變我的document_id
更新 它是這樣的...... 鏈接
import { doc } from "firebase/firestore";
const messageRef = doc(db, "rooms", "roomA", "messages", "message1");
我很抱歉它關于集合內的檔案......讓我們說
await setDoc(..., {
group_item: {},
single_item: {},
}
基于我的舊片段只需添加這個新東西......這是正確的方法嗎?或類似子集合的東西,你知道我的意思。
更新 2
假設我有owner-items
await setDoc(doc(db,`owner-items`,`${currentUser?.email}-${uid}`),{
group_items:[{
id:1,
img:file-image
}],
single_item:[{
id:1,
img:file-image
}]
})
uj5u.com熱心網友回復:
如果我正確理解了您的答案和評論,那么使用批量寫入的以下內容應該可以解決問題。
import { writeBatch, doc } from "firebase/firestore";
const batch = writeBatch(db);
const parentDocRef = doc(db, `owner-items`, `${currentUser?.email}-${uid}`);
batch.set(parentDocRef, {
single_item: [{
id: 1,
img: file - image
}]
});
const group_items = [
{
id: 1,
img: file - image
},
{...}
];
group_items.forEach(elem => {
const groupItemDocRef = doc(db, `owner-items`, `${currentUser?.email}-${uid}`, 'group-items');
batch.set(groupItemDocRef, {
item: elem
});
});
await batch.commit();
請注意,批量寫入最多可以包含 500 個操作,因此您的group_items陣列最多應包含 499 個元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517388.html
標籤:Google Cloud Collective javascript火力基地谷歌云火库
