Bird
Raised Fist0
Firebasecloud~5 mins

Creating collections and documents in Firebase - Performance & Efficiency

Choose your learning style10 modes available
Time Complexity: Creating collections and documents
O(n)
Understanding Time Complexity

When we create collections and documents in Firebase, we want to know how the time it takes changes as we add more data.

We ask: How does the number of operations grow when we add many documents?

Scenario Under Consideration

Analyze the time complexity of the following operation sequence.


const db = getFirestore();
for (let i = 0; i < n; i++) {
  const docRef = doc(collection(db, 'users'));
  await setDoc(docRef, { name: `User ${i}`, age: 20 + i });
}
    

This code creates a new document inside the 'users' collection for each user, setting simple data.

Identify Repeating Operations

Identify the API calls, resource provisioning, data transfers that repeat.

  • Primary operation: Calling setDoc to write each document.
  • How many times: Exactly once per document, so n times.
How Execution Grows With Input

Each new document requires one write operation, so as the number of documents grows, the total operations grow the same way.

Input Size (n)Approx. API Calls/Operations
1010 writes
100100 writes
10001000 writes

Pattern observation: The number of operations grows directly with the number of documents added.

Final Time Complexity

Time Complexity: O(n)

This means the time to create documents grows in a straight line as you add more documents.

Common Mistake

[X] Wrong: "Creating multiple documents happens all at once, so time stays the same no matter how many documents."

[OK] Correct: Each document write is a separate operation that takes time, so more documents mean more total time.

Interview Connect

Understanding how operations grow helps you design efficient data writes and shows you can think about scaling in real projects.

Self-Check

"What if we batch all document writes into a single batch operation? How would the time complexity change?"

Practice

(1/5)
1. What is a collection in Firebase Firestore?
easy
A. A function to add data.
B. A single document storing data.
C. A group that holds multiple documents.
D. A method to delete documents.

Solution

  1. Step 1: Understand Firestore structure

    Firestore organizes data in collections and documents.
  2. Step 2: Define collection role

    A collection groups multiple documents together.
  3. Final Answer:

    A group that holds multiple documents. -> Option C
  4. Quick Check:

    Collection = group of documents [OK]
Hint: Collections hold documents, not single data items. [OK]
Common Mistakes:
  • Confusing collection with a single document
  • Thinking collection is a method
  • Mixing collection with data fields
2. Which Firebase Firestore method creates a document with an auto-generated ID?
easy
A. set()
B. add()
C. update()
D. get()

Solution

  1. Step 1: Recall document creation methods

    Firestore uses set() to create or overwrite documents with specific IDs.
  2. Step 2: Identify method for auto-generated IDs

    The add() method creates a document with an auto-generated ID inside a collection.
  3. Final Answer:

    add() -> Option B
  4. Quick Check:

    Auto-ID document creation = add() [OK]
Hint: Use add() for auto-generated document IDs. [OK]
Common Mistakes:
  • Using set() and expecting auto-ID
  • Confusing update() with creation
  • Using get() which only reads data
3. What will happen when this code runs?
db.collection('users').doc('user1').set({name: 'Anna', age: 25});
medium
A. Creates or overwrites 'user1' document with name and age.
B. Adds a new document with auto-generated ID.
C. Updates only the age field in 'user1' document.
D. Throws an error because set() needs add() instead.

Solution

  1. Step 1: Analyze method usage

    set() on a doc reference creates or overwrites that document.
  2. Step 2: Check document ID and data

    The doc ID is 'user1', so this document will be created or replaced with given data.
  3. Final Answer:

    Creates or overwrites 'user1' document with name and age. -> Option A
  4. Quick Check:

    set() on doc('user1') = overwrite/create [OK]
Hint: set() replaces document at given ID, add() creates new ID. [OK]
Common Mistakes:
  • Thinking add() is needed for specific IDs
  • Assuming update() is called by set()
  • Confusing set() with partial update
4. Identify the error in this Firestore code:
db.collection('products').add({name: 'Book', price: 10}).doc('p1').set({price: 12});
medium
A. No error, code works fine.
B. set() cannot update price field.
C. Collection name 'products' is invalid.
D. add() returns a promise, chaining doc() is invalid.

Solution

  1. Step 1: Understand add() return value

    add() returns a promise resolving to a document reference, not a direct reference.
  2. Step 2: Check chaining doc() after add()

    Calling doc() on the promise or document reference from add() is invalid syntax.
  3. Final Answer:

    add() returns a promise, chaining doc() is invalid. -> Option D
  4. Quick Check:

    add() returns promise, cannot chain doc() directly [OK]
Hint: add() returns promise; await before doc() calls. [OK]
Common Mistakes:
  • Chaining doc() immediately after add()
  • Ignoring promise returned by add()
  • Assuming set() cannot update fields
5. You want to create a collection 'orders' and add a document with a specific ID 'order123' containing {item: 'Pen', quantity: 3}. Which code snippet is correct?
hard
A. db.collection('orders').doc('order123').set({item: 'Pen', quantity: 3});
B. db.collection('orders').add({item: 'Pen', quantity: 3, id: 'order123'});
C. db.collection('orders').doc().set({item: 'Pen', quantity: 3, id: 'order123'});
D. db.collection('orders').set('order123', {item: 'Pen', quantity: 3});

Solution

  1. Step 1: Identify method to create document with specific ID

    Use doc('order123') to specify the document ID explicitly.
  2. Step 2: Use set() to create or overwrite document data

    set() writes the data to the specified document ID.
  3. Final Answer:

    db.collection('orders').doc('order123').set({item: 'Pen', quantity: 3}); -> Option A
  4. Quick Check:

    Specific ID document creation = doc(id).set() [OK]
Hint: Use doc('id').set() for specific document IDs. [OK]
Common Mistakes:
  • Using add() with id field (does not set document ID)
  • Calling doc() without ID for specific ID
  • Using set() directly on collection
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard