Bird
Raised Fist0
Firebasecloud~5 mins

Creating collections and documents in Firebase - Step-by-Step CLI Walkthrough

Choose your learning style10 modes available
Introduction
When you want to store data in Firebase Firestore, you organize it into collections and documents. Collections hold documents, and documents hold your actual data. This helps keep your data neat and easy to find.
When you want to save user profiles in your app.
When you need to store messages in a chat application.
When you want to keep track of orders in an online store.
When you want to save settings or preferences for each user.
When you want to add new data entries without changing existing ones.
Commands
This command creates a document with ID 'user123' inside the 'users' collection and adds the fields 'name' and 'age' with their values.
Terminal
firebase firestore:documents:create users/user123 --data '{"name":"Alice","age":30}'
Expected OutputExpected
Document users/user123 created successfully.
→
--data - Specifies the JSON data to store in the document.
This command retrieves and shows the data stored in the document 'user123' inside the 'users' collection to verify it was created correctly.
Terminal
firebase firestore:documents:get users/user123
Expected OutputExpected
{ "name": "Alice", "age": 30 }
Creates another document 'user124' in the 'users' collection with different data to show how to add multiple documents.
Terminal
firebase firestore:documents:create users/user124 --data '{"name":"Bob","age":25}'
Expected OutputExpected
Document users/user124 created successfully.
→
--data - Specifies the JSON data to store in the document.
Lists all collections in your Firestore database to confirm the 'users' collection exists.
Terminal
firebase firestore:collections:list
Expected OutputExpected
users
Key Concept

If you remember nothing else from this pattern, remember: collections hold documents, and documents hold your data as key-value pairs.

Common Mistakes
Trying to create a document without specifying data.
Firestore requires data to create a document; otherwise, the command fails.
Always include the --data flag with valid JSON when creating a document.
Using incorrect document paths like missing collection name.
Firestore needs the full path including collection and document ID to locate or create documents.
Always specify the collection name followed by the document ID, like 'users/user123'.
Summary
Use 'firebase firestore:documents:create' with --data to add documents to collections.
Verify document creation with 'firebase firestore:documents:get'.
List collections using 'firebase firestore:collections:list' to see your data groups.

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