Bird
Raised Fist0
Firebasecloud~5 mins

Array-contains queries in Firebase - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the array-contains query operator do in Firebase?
It finds documents where a specified array field contains a specific value.
Click to reveal answer
beginner
Can array-contains queries check for multiple values at once?
No, array-contains checks for only one value. To check multiple values, use array-contains-any.
Click to reveal answer
beginner
What type of field must you use array-contains on?
The field must be an array type in the document.
Click to reveal answer
intermediate
Is it possible to combine array-contains with other query filters?
Yes, you can combine array-contains with other filters like where clauses, but only one array-contains filter per query.
Click to reveal answer
beginner
What happens if you use array-contains on a field that is not an array?
The query will not match any documents because the field must be an array to contain values.
Click to reveal answer
What does the Firebase array-contains operator do?
AFinds documents where an array contains any of multiple values
BFinds documents where a string contains a substring
CFinds documents where an array field contains a specific value
DFinds documents where a number is greater than a value
Which operator allows checking if an array contains any of multiple values?
Aarray-contains-any
Barray-contains
Cin
Dwhere
How many array-contains filters can you use in a single Firebase query?
AUnlimited
BOne
CTwo
DNone
What type of field must be queried with array-contains?
AString
BBoolean
CNumber
DArray
If a field is not an array, what will happen when using array-contains?
AIt matches no documents
BIt throws an error
CIt matches documents with null values
DIt matches documents anyway
Explain how the array-contains query works in Firebase and when you would use it.
Think about searching for a value inside a list stored in a document.
You got /4 concepts.
    Describe the difference between array-contains and array-contains-any in Firebase queries.
    One is for single value, the other for multiple values.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the array-contains query operator do in Firebase Firestore?

      easy
      A. Finds documents where an array field includes a specific value
      B. Finds documents where a string field contains a substring
      C. Finds documents where a number field is greater than a value
      D. Finds documents where a field is missing

      Solution

      1. Step 1: Understand the purpose of array-contains

        This operator is designed to check if an array field in a document contains a specific value.
      2. Step 2: Compare with other query types

        Other options describe different query operators, but only array-contains matches arrays including a value.
      3. Final Answer:

        Finds documents where an array field includes a specific value -> Option A
      4. Quick Check:

        array-contains = finds value in array [OK]
      Hint: Remember: array-contains checks for one value inside an array [OK]
      Common Mistakes:
      • Confusing array-contains with substring search
      • Using array-contains on non-array fields
      • Thinking it works with multiple values at once
      2.

      Which of the following is the correct syntax to query documents where the tags array contains the value "urgent"?

      const query = firestore.collection('tasks').where(____);
      easy
      A. "tags", "contains", "urgent"
      B. "tags", "==", "urgent"
      C. "tags", "array-contains-any", ["urgent"]
      D. "tags", "array-contains", "urgent"

      Solution

      1. Step 1: Recall the correct operator for single value in array

        The operator is "array-contains" to check if an array includes a specific value.
      2. Step 2: Check syntax format

        The syntax is .where("field", "array-contains", value). "tags", "array-contains", "urgent" matches this exactly.
      3. Final Answer:

        "tags", "array-contains", "urgent" -> Option D
      4. Quick Check:

        Correct syntax uses array-contains [OK]
      Hint: Use "array-contains" for single value array queries [OK]
      Common Mistakes:
      • Using == instead of array-contains for arrays
      • Confusing array-contains with array-contains-any
      • Using non-existent operator "contains"
      3.

      Given the following documents in a Firestore collection projects:

      [{ id: 1, members: ["alice", "bob"] }, { id: 2, members: ["carol"] }, { id: 3, members: ["bob", "dave"] }]

      What will the query firestore.collection('projects').where('members', 'array-contains', 'bob').get() return?

      medium
      A. Documents with id 2 only
      B. Documents with id 1 only
      C. Documents with id 1 and 3
      D. No documents

      Solution

      1. Step 1: Identify documents where 'members' array contains 'bob'

        Document 1 has members ["alice", "bob"] which includes "bob". Document 3 has ["bob", "dave"] which also includes "bob". Document 2 does not.
      2. Step 2: Determine query result

        The query returns documents 1 and 3 because their 'members' arrays contain "bob".
      3. Final Answer:

        Documents with id 1 and 3 -> Option C
      4. Quick Check:

        array-contains 'bob' = docs 1 and 3 [OK]
      Hint: Check which arrays include the value exactly [OK]
      Common Mistakes:
      • Including documents without the value
      • Confusing array-contains with array-contains-any
      • Assuming partial matches inside strings
      4.

      What is wrong with this Firestore query?

      firestore.collection('orders').where('items', 'array-contains', ['apple', 'banana'])

      The items field is an array of strings.

      medium
      A. You cannot use an array as the value with array-contains
      B. The operator should be 'array-contains-any' instead
      C. The field 'items' must be a string, not an array
      D. The query syntax is correct

      Solution

      1. Step 1: Understand array-contains value type

        The 'array-contains' operator expects a single value, not an array, to check inside the array field.
      2. Step 2: Identify correct usage

        Passing an array as the value causes an error. To check multiple values, 'array-contains-any' is used instead.
      3. Final Answer:

        You cannot use an array as the value with array-contains -> Option A
      4. Quick Check:

        array-contains needs single value, not array [OK]
      Hint: array-contains accepts only one value, not arrays [OK]
      Common Mistakes:
      • Passing an array as the value to array-contains
      • Confusing array-contains with array-contains-any
      • Assuming array-contains works like 'in' operator
      5.

      You want to find all documents in the events collection where the attendees array contains both "john" and "jane". Which approach is correct?

      hard
      A. Use a single query with array-contains-any and pass both names
      B. Use two queries with array-contains for each name and merge results client-side
      C. Use a single query with array-contains and pass an array of both names
      D. Use a query with where('attendees', '==', ['john', 'jane'])

      Solution

      1. Step 1: Understand limitations of array-contains and array-contains-any

        array-contains checks for one value in array; array-contains-any checks if array contains any of multiple values but not all.
      2. Step 2: Find correct method to get documents containing both values

        Since Firestore does not support querying for multiple values all present in one array in a single query, you must run two queries with array-contains and combine results client-side.
      3. Final Answer:

        Use two queries with array-contains for each name and merge results client-side -> Option B
      4. Quick Check:

        Multiple array-contains queries combined client-side [OK]
      Hint: Firestore can't query multiple array-contains in one query [OK]
      Common Mistakes:
      • Using array-contains-any expecting all values matched
      • Passing array of values to array-contains
      • Using equality check on arrays
      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