'How do you add multiple documents at once to a collection in Firestore?

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



Solution 1:[1]

You'll want to do this in two steps:

  1. 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"));
    
  2. Write to that reference in your batch or transaction.

Also see:

Solution 2:[2]

I found another way to do this without using Firebases batch function. Each transaction or batch of writes can write to a maximum of 500 documents. I was looking to update my app with more than 500 and found a video on YouTube showing another way to do this.

I had to tweak the script a bit to get what I needed but the idea is there.

https://www.youtube.com/watch?v=Qg2_VFFcAI8

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Frank van Puffelen
Solution 2 Killian