Bird
Raised Fist0
Firebasecloud~20 mins

Document ID strategies in Firebase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Document ID Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding Firebase Document ID uniqueness

Which statement best describes how Firebase ensures document ID uniqueness within a collection?

AFirebase automatically generates a unique ID for each document if none is provided, ensuring no duplicates within the collection.
BFirebase allows duplicate document IDs within the same collection but prevents duplicates across different collections.
CFirebase requires the user to manually check and prevent duplicate document IDs before adding documents.
DFirebase uses timestamps as document IDs to guarantee uniqueness across all collections.
Attempts:
2 left
💡 Hint

Think about how Firebase handles document creation when no ID is specified.

❓ Architecture
intermediate
2:00remaining
Choosing document ID strategy for user profiles

You want to store user profiles in Firebase Firestore. Which document ID strategy is best to ensure easy retrieval and uniqueness?

AUse the user's email address as the document ID.
BUse Firebase's auto-generated IDs for each user profile document.
CUse the user's unique authentication UID as the document ID.
DUse a random UUID generated on the client side as the document ID.
Attempts:
2 left
💡 Hint

Consider which ID is guaranteed unique and consistent for each user.

❓ security
advanced
2:00remaining
Security risks of predictable document IDs

What is a major security risk when using predictable document IDs like sequential numbers in Firebase Firestore?

AIt causes Firebase to reject writes due to ID conflicts.
BIt allows attackers to guess document IDs and access unauthorized data if security rules are not strict.
CIt increases Firestore costs because predictable IDs require more storage.
DIt slows down queries because Firestore indexes sequential IDs less efficiently.
Attempts:
2 left
💡 Hint

Think about what happens if someone can guess document IDs.

✅ Best Practice
advanced
2:00remaining
Best practice for document ID length and readability

Which document ID strategy balances uniqueness, readability, and performance in Firebase Firestore?

AUse short, human-readable IDs like usernames without extra uniqueness checks.
BUse a combination of a short prefix and a timestamp to create IDs.
CUse long UUIDs (36 characters) for all documents regardless of use case.
DUse Firebase's auto-generated 20-character IDs for all documents.
Attempts:
2 left
💡 Hint

Consider what Firebase recommends for most use cases.

❓ service_behavior
expert
2:00remaining
Effect of document ID choice on Firestore query performance

How does choosing sequential numeric document IDs affect Firestore query performance compared to using Firebase's auto-generated IDs?

ASequential numeric IDs cause hotspots in Firestore, reducing write performance and increasing latency.
BSequential numeric IDs improve query speed because documents are stored in order.
CThere is no difference in performance between sequential numeric IDs and auto-generated IDs.
DAuto-generated IDs cause hotspots because they are random and scattered.
Attempts:
2 left
💡 Hint

Think about how Firestore stores documents and handles writes.

Practice

(1/5)
1. What is the main purpose of a document ID in Firebase?
easy
A. To uniquely identify each record in a collection
B. To store user passwords securely
C. To define the database location
D. To control access permissions

Solution

  1. Step 1: Understand what a document ID represents

    A document ID is a unique identifier for each record in a Firebase collection, ensuring each document can be accessed individually.
  2. Step 2: Differentiate from other database concepts

    Document IDs are not used for storing passwords, defining database location, or controlling access permissions.
  3. Final Answer:

    To uniquely identify each record in a collection -> Option A
  4. Quick Check:

    Document ID = Unique record identifier [OK]
Hint: Document ID uniquely names each record [OK]
Common Mistakes:
  • Confusing document ID with security rules
  • Thinking document ID stores data
  • Mixing document ID with database path
2. Which of the following is the correct way to let Firebase generate a document ID automatically?
easy
A. Use collectionRef.doc() without arguments
B. Use collectionRef.doc('customID')
C. Use collectionRef.add(data)
D. Use collectionRef.set(data)

Solution

  1. Step 1: Identify Firebase methods for adding documents

    The add() method adds a document with an auto-generated ID to a collection.
  2. Step 2: Understand difference from doc() and set()

    doc() with no argument creates a reference but does not add data; set() requires a document reference.
  3. Final Answer:

    Use collectionRef.add(data) -> Option C
  4. Quick Check:

    Auto ID creation = add() method [OK]
Hint: Use add() to auto-generate document ID [OK]
Common Mistakes:
  • Using doc() without set() does not create document
  • Assuming set() auto-generates ID
  • Passing custom ID when auto ID is needed
3. Given this code snippet, what will be the document ID of the new document?
const docRef = collectionRef.doc('user123');
docRef.set({name: 'Alice'});
medium
A. 'user123'
B. Auto-generated random ID
C. 'Alice'
D. Undefined

Solution

  1. Step 1: Analyze the doc() method argument

    The doc('user123') call creates a document reference with ID 'user123'.
  2. Step 2: Understand set() usage

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

    'user123' -> Option A
  4. Quick Check:

    doc('user123') sets document ID = 'user123' [OK]
Hint: doc('ID') sets document ID explicitly [OK]
Common Mistakes:
  • Thinking set() changes the ID
  • Assuming ID is auto-generated here
  • Confusing document data with ID
4. What is wrong with this code if the goal is to create a document with an auto-generated ID?
const docRef = collectionRef.doc();
medium
A. doc() requires a string argument
B. doc() without arguments does not create a document automatically
C. set() cannot be used with doc()
D. The data object is missing an ID field

Solution

  1. Step 1: Understand doc() without arguments

    Calling doc() without arguments creates a reference with a random ID but does not create the document automatically.
  2. Step 2: Confirm the issue

    The code only creates a DocumentReference; to create the document, set(data) or add(data) is needed.
  3. Final Answer:

    doc() without arguments does not create a document automatically -> Option B
  4. Quick Check:

    doc() alone ≠ document creation [OK]
Hint: doc() alone doesn't create document, set() must follow [OK]
Common Mistakes:
  • Assuming doc() creates document immediately
  • Thinking set() is invalid here
  • Expecting doc() to require argument always
5. You want to create user profiles with document IDs matching their usernames for easy lookup. Which strategy is best?
hard
A. Create documents without IDs and rely on collection order
B. Let Firebase auto-generate IDs and store username inside document
C. Use random UUIDs as document IDs and index usernames separately
D. Use usernames as document IDs by calling doc(username)

Solution

  1. Step 1: Understand the goal

    The goal is to have document IDs that match usernames for easy direct lookup.
  2. Step 2: Evaluate strategies

    Using doc(username) sets the document ID to the username, enabling direct access by username.
  3. Step 3: Compare with other options

    Auto-generated IDs or random UUIDs require extra queries to find username; no IDs or relying on order is unreliable.
  4. Final Answer:

    Use usernames as document IDs by calling doc(username) -> Option D
  5. Quick Check:

    Username as ID = direct lookup [OK]
Hint: Use username as doc ID for direct access [OK]
Common Mistakes:
  • Relying on auto IDs for username lookup
  • Ignoring need for unique IDs
  • Assuming collection order is stable
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