I am somewhat new to Firebase and looking for the ability to write multiple JSON objects into a collection under random IDs in one operation. I am just using firestore and auth(not shown) along with react.
So far I have
Function TestDocs () {
{addDoc(collection(db, 'randomData'), {**object 1 example data**},{**object 2 more example data**}
)
}
I have a button on a webpage which adds the data into the DB. When I check Firestore only the first object is loaded and not the second... on top of this, assuming that I wanted to add hundreds of objects(not just 2), how would I go about this?
I was looking through the documentation for Firestore batch writes but it only lists set(), update() and delete() as permitted operations so I am not sure how it would work. Thanks in advance
CodePudding user response:
You'll want to do this in two steps:
Create a reference to a new document with a new unique ID:
// Generate two new document references with a generated ids const newRef1 = doc(collection(db, "randomData")); const newRef2 = doc(collection(db, "randomData"));
Write to that reference in your batch or transaction.
Also see:
- Firestore - batch.add is not a function (which contains the older namespaced syntax for doing the same).
- The last snippet in the documentation on adding a document, which shows this approach.