Bird
Raised Fist0
GCPcloud~30 mins

Firestore document model in GCP - Mini Project: Build & Apply

Choose your learning style10 modes available
Firestore Document Model
📖 Scenario: You are building a simple app to store user profiles in Google Firestore. Each user has a unique ID, a name, and an email address. You want to create the Firestore document model to represent these users.
🎯 Goal: Create a Firestore document model by defining a dictionary that represents a user profile, add a configuration for the collection name, write the code to add the user document to Firestore, and complete the Firestore client initialization.
📋 What You'll Learn
Create a dictionary called user_profile with keys id, name, and email and exact values "user123", "Alice Smith", and "alice@example.com" respectively.
Create a variable called collection_name and set it to "users".
Write code to add the user_profile dictionary as a document to the Firestore collection named collection_name using the id as the document ID.
Initialize the Firestore client by importing the necessary module and creating a client instance called db.
💡 Why This Matters
🌍 Real World
Firestore is a popular NoSQL database used in many cloud applications to store and sync data in real time. Modeling documents correctly is essential for efficient data storage and retrieval.
💼 Career
Understanding Firestore document models and how to interact with Firestore using client libraries is a key skill for cloud developers and engineers working with Google Cloud Platform.
Progress0 / 4 steps
1
Create the user profile dictionary
Create a dictionary called user_profile with these exact entries: 'id': 'user123', 'name': 'Alice Smith', and 'email': 'alice@example.com'.
GCP
Hint

Use curly braces to create a dictionary and separate keys and values with colons.

2
Set the Firestore collection name
Create a variable called collection_name and set it to the string 'users'.
GCP
Hint

Assign the string 'users' to the variable collection_name.

3
Add the user document to Firestore
Write code to add the user_profile dictionary as a document to the Firestore collection named collection_name using the id field as the document ID. Use db.collection(collection_name).document(user_profile['id']).set(user_profile).
GCP
Hint

Use the Firestore client db to access the collection and set the document.

4
Initialize the Firestore client
Import firestore from google.cloud and create a Firestore client instance called db using firestore.Client().
GCP
Hint

Use the import statement and create the client before using it.

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