I'm trying to store book Ids in the books array in firestore. every time I add a new book it overwrites the first one.
await updateDoc(
doc(dataBase, "users", user.uid),
{
currentlyReading: {
arrayUnion(bookId)
}
},
{ merge: true }
);
I'm using updateDoc as stated in the documentation + merge: true, but it only stores one element. is there any way I can keep adding elements without overwriting? Thank you in advance.
The { merge: true } prevents from existing fields from being removed when using setDoc() and doesn't work for array elements. There's no need for that option when using updateDoc(). One way would be to use arrayUnion() add new elements to the array.
import { doc, updateDoc, arrayUnion } from "firebase/firestore"
await updateDoc(doc(dataBase, "users", (user.uid)), {
currentlyReading:{
books: arrayUnion(bookId)
}
})