Bird
Raised Fist0
Firebasecloud~10 mins

Ordering results in Firebase - Interactive Code Practice

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

Complete the code to order documents by the field 'score' in ascending order.

Firebase
db.collection('games').orderBy('[1]').get()
Drag options to blanks, or click blank then click option'
Aname
Bdate
Cscore
Dlevel
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field name that does not exist in the documents.
Forgetting to call orderBy before get().
2fill in blank
medium

Complete the code to order documents by 'date' in descending order.

Firebase
db.collection('games').orderBy('date', '[1]').get()
Drag options to blanks, or click blank then click option'
Adesc
Bascending
Cdescending
Dasc
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'ascending' or 'descending' instead of 'asc' or 'desc'.
Omitting the direction argument defaults to ascending.
3fill in blank
hard

Fix the error in the code to order by 'level' ascending.

Firebase
db.collection('games').orderBy([1]).get()
Drag options to blanks, or click blank then click option'
A'level', 'asc'
B'level', 'desc'
Clevel
D'level'
Attempts:
3 left
💡 Hint
Common Mistakes
Passing multiple arguments inside one parameter.
Not using quotes around the field name.
4fill in blank
hard

Fill both blanks to order by 'score' descending and then by 'date' ascending.

Firebase
db.collection('games').orderBy('[1]', '[2]').orderBy('date', 'asc').get()
Drag options to blanks, or click blank then click option'
Ascore
Bdesc
Casc
Ddate
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping the order of fields.
Using wrong direction strings.
5fill in blank
hard

Fill all three blanks to order by 'level' descending, then by 'score' ascending, and finally by 'date' ascending.

Firebase
db.collection('games').orderBy('[1]', '[2]').orderBy('[3]', 'asc').orderBy('date', 'asc').get()
Drag options to blanks, or click blank then click option'
Alevel
Bdesc
Cscore
Ddate
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up field names and directions.
Using wrong direction strings.
Not chaining orderBy calls correctly.

Practice

(1/5)
1. What does the orderBy method do in Firebase Firestore queries?
easy
A. It deletes documents from the collection.
B. It filters documents based on a condition.
C. It sorts the query results by a specified field.
D. It adds new documents to the collection.

Solution

  1. Step 1: Understand the purpose of orderBy

    The orderBy method is used to sort documents in a query result by a specific field.
  2. Step 2: Differentiate from other query methods

    Filtering uses where, deleting uses delete, and adding uses add. These are different from sorting.
  3. Final Answer:

    It sorts the query results by a specified field. -> Option C
  4. Quick Check:

    Ordering = Sorting [OK]
Hint: Remember: orderBy sorts, where filters [OK]
Common Mistakes:
  • Confusing orderBy with filtering
  • Thinking orderBy adds or deletes data
  • Assuming orderBy changes data, not just order
2. Which of the following is the correct syntax to order Firestore documents by the field age in descending order?
easy
A. db.collection('users').orderBy('age', 'desc')
B. db.collection('users').orderBy('age', descending)
C. db.collection('users').orderBy('age', 'descending')
D. db.collection('users').orderBy('age', -1)

Solution

  1. Step 1: Recall Firestore orderBy syntax

    The correct syntax uses the string 'desc' for descending order, not 'descending' or other variants.
  2. Step 2: Check each option

    db.collection('users').orderBy('age', 'desc') uses 'desc' correctly. Options A and B use invalid strings. db.collection('users').orderBy('age', -1) uses a number which is not valid in Firestore.
  3. Final Answer:

    db.collection('users').orderBy('age', 'desc') -> Option A
  4. Quick Check:

    Descending order = 'desc' string [OK]
Hint: Use 'asc' or 'desc' strings exactly in orderBy [OK]
Common Mistakes:
  • Using 'descending' instead of 'desc'
  • Using boolean or numbers instead of strings
  • Omitting quotes around 'desc'
3. Given this Firestore query:
db.collection('products').orderBy('price', 'asc').limit(3).get()

Which products will be returned?
medium
A. The 3 products with the lowest price.
B. The 3 products with the highest price.
C. All products sorted by price ascending.
D. 3 random products from the collection.

Solution

  1. Step 1: Analyze the query order and limit

    The query orders products by price ascending (lowest to highest) and limits results to 3 documents.
  2. Step 2: Understand the effect of limit

    Limit(3) returns only the first 3 documents after sorting, so the 3 cheapest products.
  3. Final Answer:

    The 3 products with the lowest price. -> Option A
  4. Quick Check:

    orderBy ascending + limit 3 = lowest 3 [OK]
Hint: orderBy asc + limit = smallest values first [OK]
Common Mistakes:
  • Confusing ascending with descending
  • Ignoring the limit clause
  • Assuming random order without sorting
4. You wrote this Firestore query:
db.collection('orders').orderBy('date').orderBy('total', 'desc').get()

But it throws an error about missing indexes. What should you do?
medium
A. Use where() instead of orderBy().
B. Create a composite index on 'date' ascending and 'total' descending.
C. Change 'desc' to 'descending' in orderBy.
D. Remove one orderBy to avoid multiple ordering.

Solution

  1. Step 1: Understand Firestore composite index requirement

    Ordering by multiple fields requires a composite index matching the order and directions.
  2. Step 2: Identify correct index to create

    You must create a composite index on 'date' ascending and 'total' descending to support this query.
  3. Final Answer:

    Create a composite index on 'date' ascending and 'total' descending. -> Option B
  4. Quick Check:

    Multiple orderBy needs composite index [OK]
Hint: Multiple orderBy? Create matching composite index [OK]
Common Mistakes:
  • Ignoring index creation errors
  • Using wrong direction strings
  • Trying to avoid multiple orderBy instead of indexing
5. You want to get all users ordered by their score descending, but only those who have score greater than 50. Which query is correct?
hard
A. db.collection('users').orderBy('score', 'asc').where('score', '>', 50).get()
B. db.collection('users').orderBy('score').where('score', '>', 50).get()
C. db.collection('users').where('score', '>', 50).orderBy('score').get()
D. db.collection('users').where('score', '>', 50).orderBy('score', 'desc').get()

Solution

  1. Step 1: Understand Firestore query rules for inequality filters

    Range filters like '>' require orderBy on the same field as the first ordering field. Use 'desc' for descending order.
  2. Step 2: Check each option

    A uses orderBy('score', 'asc'): ascending, not descending.
    B: where('score', '>', 50).orderBy('score', 'desc'): correct for filtered descending order.
    C: orderBy('score') defaults to 'asc'.
    D: orderBy('score') defaults to 'asc'.
  3. Final Answer:

    db.collection('users').where('score', '>', 50).orderBy('score', 'desc').get() -> Option D
  4. Quick Check:

    Range filter + first orderBy on field + 'desc' [OK]
Hint: Range filters require orderBy on same field and direction [OK]
Common Mistakes:
  • Mismatching orderBy direction with where filter
  • Omitting orderBy when using range filters
  • Using orderBy without specifying direction
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