![](/img/trans.png)
[英]Firestore: How do I update email and store it in my firestore collection as a single batch operation?
[英]How can I update an array field with a batch write operation in firestore?
在子集合中創建新文檔時,我一直在嘗試更新文檔中的一組地圖,但無法使其工作:
export const addTask = async (data, caseId) => {
let batch = await db.batch();
const caseRef = db.collection("cases").doc(caseId);
const taskRef = caseRef.collection("tasks").doc();
try {
await batch.set(taskRef, data);
await batch.set(caseRef, {
tasks: db.FieldValue.arrayUnion(data),
}, {merge:true});
} catch (error) {
console.log(error);
}
return batch.commit();
};
這些是問題:
{merge:true}
不是必需的,因為 arrayUnion 會將數據添加到現有集合中,除非它已經存在。 export const addTask = async (data, caseId) => {
let batch = await db.batch();
const caseRef = db.collection("cases").doc(caseId);
const taskRef = caseRef.collection("tasks").doc();
try {
await batch.set(taskRef, data);
await batch.update(caseRef, {
tasks: firebase.firestore.FieldValue.arrayUnion(data),
});
}catch (error) {
console.log(error);
}
return batch.commit();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.