Bird
Raised Fist0
GCPcloud~10 mins

Firestore document model in GCP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a Firestore document reference.

GCP
doc_ref = db.collection('users').[1]('user123')
Drag options to blanks, or click blank then click option'
Adocument
Badd
Cget
Dlist
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'get' which retrieves data instead of referencing a document.
Using 'add' which adds a new document instead of referencing an existing one.
2fill in blank
medium

Complete the code to add a new document with an auto-generated ID.

GCP
db.collection('orders').[1]({'item': 'book', 'qty': 3})
Drag options to blanks, or click blank then click option'
Aupdate
Bset
Cadd
Ddelete
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'set' which requires a document reference.
Using 'update' which only modifies existing documents.
3fill in blank
hard

Fix the error in the code to update a document field.

GCP
db.collection('products').doc('prod1').[1]({'price': 20})
Drag options to blanks, or click blank then click option'
Aset
Bupdate
Cadd
Dget
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'add' which creates a new document instead of updating.
Using 'set' which overwrites the whole document.
4fill in blank
hard

Fill both blanks to query documents where age is greater than 25.

GCP
results = db.collection('employees').where('age', [1], [2]).get()
Drag options to blanks, or click blank then click option'
A==
B>
C25
D<
Attempts:
3 left
💡 Hint
Common Mistakes
Using '==' which only matches exact values.
Using '<' which finds ages less than 25.
5fill in blank
hard

Fill all three blanks to create a dictionary of user names and their emails for users older than 30.

GCP
user_emails = {user.[1]: user.[2] for user in users if user.[3] > 30}
Drag options to blanks, or click blank then click option'
Aname
Bemail
Cage
Did
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'id' instead of 'name' for keys.
Filtering by 'email' instead of 'age'.

Practice

(1/5)
1. What is the basic unit of data storage in Firestore?
easy
A. A table
B. A document
C. A bucket
D. A file

Solution

  1. Step 1: Understand Firestore data structure

    Firestore organizes data into collections and documents, not tables or files.
  2. Step 2: Identify the smallest data unit

    The smallest unit is a document, which holds fields and values.
  3. Final Answer:

    A document -> Option B
  4. Quick Check:

    Firestore stores data as documents [OK]
Hint: Remember: Firestore uses documents, not tables or files [OK]
Common Mistakes:
  • Confusing documents with tables from SQL databases
  • Thinking Firestore stores files like Cloud Storage
  • Assuming buckets are data units in Firestore
2. Which of the following is the correct way to represent a Firestore document field in JSON-like syntax?
easy
A. "name": "Alice"
B. "name" = "Alice"
C. name: Alice
D. 'name' -> 'Alice'

Solution

  1. Step 1: Recall JSON field syntax

    JSON uses double quotes for keys and string values, separated by a colon.
  2. Step 2: Match Firestore document field style

    Firestore documents resemble JSON, so the correct syntax is "key": "value".
  3. Final Answer:

    "name": "Alice" -> Option A
  4. Quick Check:

    Firestore fields use JSON syntax [OK]
Hint: Use colon and double quotes for Firestore fields [OK]
Common Mistakes:
  • Using equals sign instead of colon
  • Omitting quotes around keys or values
  • Using arrow notation which is invalid
3. Given a Firestore collection 'users' with documents having fields {"age": 30, "active": true}, what will the query return if you filter for documents where active == false?
medium
A. All documents with active false
B. All documents regardless of active field
C. Error due to invalid filter
D. No documents

Solution

  1. Step 1: Understand the data and filter condition

    Documents have "active": true, but the query filters for active == false.
  2. Step 2: Evaluate query result

    No documents match active == false, so the query returns no results.
  3. Final Answer:

    No documents -> Option D
  4. Quick Check:

    Filter matches no documents [OK]
Hint: Filter matches only exact values; no match means empty result [OK]
Common Mistakes:
  • Assuming query returns all documents
  • Expecting an error for valid filter
  • Confusing true and false values
4. You try to add a document with this data: {name: "Bob", age: "twenty"}. What is the likely issue?
medium
A. Firestore requires age to be a number, not a string
B. No issue, document will be added
C. Field names must be in quotes
D. Document ID is missing

Solution

  1. Step 1: Check field name syntax

    Firestore expects field names as strings in JSON, so keys must be quoted.
  2. Step 2: Analyze the given data

    Keys are unquoted (name, age), which is invalid JSON syntax for Firestore.
  3. Final Answer:

    Field names must be in quotes -> Option C
  4. Quick Check:

    Field names need quotes in Firestore JSON [OK]
Hint: Always quote field names in Firestore documents [OK]
Common Mistakes:
  • Thinking Firestore auto-corrects missing quotes
  • Assuming string values for numbers cause errors
  • Believing document ID is mandatory in data
5. You want to model a blog app in Firestore. Each blog post has multiple comments. Which is the best Firestore document model to organize this data?
hard
A. Create a 'posts' collection with documents for each post, and a subcollection 'comments' inside each post document
B. Store all comments as an array field inside each blog post document
C. Create a single collection 'comments' with a field referencing the post ID
D. Store all posts and comments in one flat collection

Solution

  1. Step 1: Consider Firestore best practices for related data

    Large or growing lists like comments should be in subcollections, not arrays, for scalability.
  2. Step 2: Evaluate options for organizing posts and comments

    Using a 'posts' collection with 'comments' subcollections keeps data organized and efficient.
  3. Final Answer:

    Create a 'posts' collection with documents for each post, and a subcollection 'comments' inside each post document -> Option A
  4. Quick Check:

    Use subcollections for related many items [OK]
Hint: Use subcollections for many related items, not arrays [OK]
Common Mistakes:
  • Putting all comments in one array causing size limits
  • Using a flat collection losing post-comment grouping
  • Referencing post ID without subcollections complicates queries
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