0

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

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
Killian
  • 35
  • 6
  • The Firebase Realtime Database and Cloud Firestore are two separate databases. Please only mark your question with the relevant tag, not with both. – Frank van Puffelen May 12 '22 at 14:02

2 Answers2

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:

Frank van Puffelen
  • 565,676
  • 79
  • 828
  • 807
0

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

Killian
  • 35
  • 6
  • Consider adding what you had to tweak to your answer. Use the edit feature (button bottom left of your answer) – Zach Jensz May 19 '22 at 02:14