// sending contracts to user
export async function sendContractToOtherUser(email: string | any, contract: string) {
try {
let user : any = "";
// search the users collection with the email and get the user id
// Create a reference to the users collection
const usersRef = collection(db, "users");
// Create a query against the collection.
onSnapshot(usersRef, async(snapShot) => {
snapShot.docs.forEach(doc => {
if(doc.data().email === email) {
user = doc.data();
}}
);
console.log("//////user Found", user, typeof user, user.userID);
// An Array which Contains an object
const userContractData : any = [{
userID : user.userID,
contract: contract
}];
// setting the array
const newPendingContractRef : any = doc(db,"pendingContract", user.userID );
await setDoc(newPendingContractRef,
{...userContractData}
, {merge: true});
// console.log("/////////contract", pendingContract);
});
} catch (error) {
console.log("/////////errror in sendContractToOtherUser", error);
}
}
我想追加到集合userContractData檔案(user.uid)中存在的陣列pendingContract。但是我的代碼所做的是它只更新第 0 個索引處已經存在的資料。我如何構造我userContractData的setDoc方法以及我可以附加到陣列中的方法

uj5u.com熱心網友回復:
您確實將第一個陣列項的值設定為檔案。嘗試使用arrayUnion()將元素推送到陣列:
await setDoc(newPendingContractRef,
{ contract: arrayUnion(...userContractData) }
, {merge: true});
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/465504.html
