Bird
Raised Fist0
GCPcloud~5 mins

Firestore queries and indexes in GCP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Firestore index and why is it important?
A Firestore index is a data structure that helps Firestore quickly find and sort documents based on query conditions. It is important because without proper indexes, queries can be slow or fail to run.
Click to reveal answer
intermediate
What types of queries require composite indexes in Firestore?
Queries that filter or sort on multiple fields at the same time require composite indexes. For example, querying where 'status' is 'active' and ordering by 'createdDate' needs a composite index.
Click to reveal answer
beginner
How does Firestore handle queries without an existing index?
Firestore returns an error with a direct link to create the required index in the Firebase console. This helps you quickly add the needed index for your query to work.
Click to reveal answer
intermediate
What is the difference between single-field and composite indexes in Firestore?
Single-field indexes are automatically created for each field and support simple queries. Composite indexes combine multiple fields and support complex queries with multiple filters or sort orders.
Click to reveal answer
advanced
Why should you avoid unnecessary indexes in Firestore?
Unnecessary indexes increase storage costs and slow down write operations because Firestore updates all relevant indexes when data changes. Keeping only needed indexes improves performance and reduces cost.
Click to reveal answer
Which Firestore query requires a composite index?
AQuery filtering by one field only
BQuery ordering by a single field
CQuery filtering by two fields and ordering by one
DQuery fetching all documents without filters
What happens if you run a Firestore query without the needed index?
AThe query returns an error with a link to create the index
BFirestore ignores the missing index and returns partial results
CThe query runs slowly but returns results
DFirestore automatically creates the index
Which index type is created automatically for each field in Firestore?
AComposite index
BNo index is created automatically
CFull-text index
DSingle-field index
Why should you limit the number of indexes in Firestore?
AIndexes increase storage costs and slow writes
BIndexes slow down read operations
CIndexes cause data loss
DIndexes prevent queries from running
Which Firestore query can run without any composite index?
AQuery filtering by two fields
BQuery filtering by one field only
CQuery ordering by two fields
DQuery filtering and ordering by multiple fields
Explain how Firestore uses indexes to speed up queries and what happens if an index is missing.
Think about how a book index helps you find pages fast.
You got /4 concepts.
    Describe best practices for managing Firestore indexes to balance performance and cost.
    Less clutter means faster work and lower bills.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of indexes in Firestore queries?
      easy
      A. To make queries faster and more efficient
      B. To store large files like images
      C. To backup data automatically
      D. To encrypt data for security

      Solution

      1. Step 1: Understand what indexes do in Firestore

        Indexes help Firestore find data quickly without scanning all documents.
      2. Step 2: Relate indexes to query performance

        By using indexes, queries run faster and use less resources.
      3. Final Answer:

        To make queries faster and more efficient -> Option A
      4. Quick Check:

        Indexes speed up queries = D [OK]
      Hint: Indexes speed up data search in Firestore queries [OK]
      Common Mistakes:
      • Thinking indexes store files
      • Confusing indexes with backups
      • Assuming indexes encrypt data
      2. Which of the following is the correct syntax to create a simple Firestore query filtering by a field age equal to 30?
      easy
      A. db.collection('users').filter('age', '=', 30)
      B. db.collection('users').where('age', '==', 30)
      C. db.collection('users').query('age' == 30)
      D. db.collection('users').find('age', 30)

      Solution

      1. Step 1: Recall Firestore query syntax

        Firestore uses where(field, operator, value) to filter data.
      2. Step 2: Match syntax with options

        db.collection('users').where('age', '==', 30) uses where('age', '==', 30), which is correct syntax.
      3. Final Answer:

        db.collection('users').where('age', '==', 30) -> Option B
      4. Quick Check:

        Correct Firestore filter syntax = B [OK]
      Hint: Use .where(field, '==', value) for filtering in Firestore [OK]
      Common Mistakes:
      • Using .filter instead of .where
      • Using == inside query string
      • Using .find which is not Firestore syntax
      3. Given this Firestore query:
      db.collection('orders').where('status', '==', 'shipped').orderBy('date', 'desc')

      What must you do to avoid an error when running this query?
      medium
      A. Remove the orderBy clause
      B. Create a single-field index on date only
      C. No index needed, Firestore handles it automatically
      D. Create a composite index on status and date

      Solution

      1. Step 1: Understand query with multiple filters and sorting

        This query filters by status and sorts by date.
      2. Step 2: Know Firestore index requirements

        Firestore requires a composite index for queries with multiple filters or sorting on different fields.
      3. Final Answer:

        Create a composite index on status and date -> Option D
      4. Quick Check:

        Composite index needed for multiple filters + orderBy = A [OK]
      Hint: Use composite indexes for queries with filters and sorting [OK]
      Common Mistakes:
      • Assuming single-field index is enough
      • Thinking Firestore auto-creates all indexes
      • Removing orderBy to fix error
      4. You wrote this Firestore query:
      db.collection('products').where('price', '>', 100).orderBy('name')

      But it gives an error about missing index. What is the best fix?
      medium
      A. Change price filter to ==
      B. Remove the orderBy clause
      C. Create a composite index on price (ascending) and name (ascending)
      D. Create a single-field index on name only

      Solution

      1. Step 1: Identify query components causing index error

        The query filters by price > 100 and orders by name.
      2. Step 2: Understand Firestore index needs for range filter + orderBy

        Firestore requires a composite index on both fields with correct sort order.
      3. Final Answer:

        Create a composite index on price (ascending) and name (ascending) -> Option C
      4. Quick Check:

        Composite index needed for range filter + orderBy = C [OK]
      Hint: Create composite index matching filter and orderBy fields [OK]
      Common Mistakes:
      • Removing orderBy instead of indexing
      • Changing filter operator incorrectly
      • Creating only single-field index
      5. You want to query a Firestore collection events to find documents where type is 'conference' and attendees is greater than 100, sorted by date ascending. Which index should you create to support this query?
      hard
      A. Composite index on type (ascending), attendees (ascending), and date (ascending)
      B. Single-field index on date only
      C. Composite index on type (descending) and date (ascending)
      D. No index needed, Firestore supports this query by default

      Solution

      1. Step 1: Analyze query filters and sorting

        The query filters by type == 'conference' and attendees > 100, and sorts by date ascending.
      2. Step 2: Determine required index type

        Multiple filters plus sorting require a composite index including all these fields with correct order.
      3. Final Answer:

        Composite index on type (ascending), attendees (ascending), and date (ascending) -> Option A
      4. Quick Check:

        Composite index covers all filters and orderBy fields = A [OK]
      Hint: Include all filter and orderBy fields in composite index [OK]
      Common Mistakes:
      • Creating only single-field index
      • Using wrong sort order in index
      • Assuming no index needed
      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