Bird
Raised Fist0
Firebasecloud~20 mins

Supported data types in Firebase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Firestore Data Types Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Firebase Firestore Supported Data Types
Which of the following data types is NOT supported by Firebase Firestore for storing in documents?
AGeoPoint
BFunction
CTimestamp
DArray
Attempts:
2 left
💡 Hint
Think about what kinds of data Firestore can store directly in documents.
❓ service_behavior
intermediate
2:00remaining
Behavior of Unsupported Data Types in Firestore
What happens if you try to store a JavaScript Date object directly in Firestore without converting it?
AIt throws an error because Firestore requires a Timestamp type.
BIt stores the Date object as a number representing milliseconds.
CIt silently converts the Date to a Firestore Timestamp.
DIt stores the Date object as a string automatically.
Attempts:
2 left
💡 Hint
Consider how Firestore expects date/time values to be formatted.
❓ Configuration
advanced
2:00remaining
Storing Nested Data Structures in Firestore
Given the following Firestore document data, which option correctly represents a nested map with an array inside?
Firebase
const data = {
  user: {
    name: "Alice",
    roles: ["admin", "editor"]
  }
};
A{"user": {"name": "Alice", "roles": ["admin", "editor"]}}
B{"user": {"name": "Alice", "roles": "admin, editor"}}
C{"user": ["name", "Alice", "roles", ["admin", "editor"]]}
D{"user": {"name": "Alice", "roles": {"0": "admin", "1": "editor"}}}
Attempts:
2 left
💡 Hint
Think about how Firestore stores objects and arrays.
❓ security
advanced
2:00remaining
Security Implications of Storing Binary Data in Firestore
Which statement about storing binary data (like images) directly in Firestore is true?
AFirestore is optimized for large binary data and is the best place to store images.
BBinary data cannot be stored in Firestore at all.
CFirestore automatically compresses binary data to save space and cost.
DStoring large binary data in Firestore can increase costs and slow down reads.
Attempts:
2 left
💡 Hint
Consider Firestore's intended use and pricing model.
❓ Architecture
expert
3:00remaining
Choosing Data Types for Efficient Firestore Queries
You want to store a user's status that can be one of: 'active', 'inactive', or 'pending'. Which data type choice allows the most efficient Firestore queries and indexing?
AStore status as a string field with values 'active', 'inactive', or 'pending'.
BStore status as a boolean field where true means active and false means inactive or pending.
CStore status as a number: 1 for active, 2 for inactive, 3 for pending.
DStore status as an array containing all possible statuses.
Attempts:
2 left
💡 Hint
Think about how Firestore indexes and queries string fields versus other types.

Practice

(1/5)
1. Which of the following is NOT a supported data type in Firebase Firestore?
easy
A. String
B. Function
C. Boolean
D. GeoPoint

Solution

  1. Step 1: Review Firebase supported data types

    Firebase supports strings, booleans, numbers, arrays, maps, timestamps, and geopoints.
  2. Step 2: Identify unsupported type

    Functions are not stored as data types in Firestore; they are part of code logic, not data.
  3. Final Answer:

    Function -> Option B
  4. Quick Check:

    Functions are not data types in Firestore [OK]
Hint: Remember: Firestore stores data, not code like functions [OK]
Common Mistakes:
  • Confusing code functions with data types
  • Thinking all JavaScript types are supported
  • Assuming Firestore stores executable code
2. Which is the correct way to store a timestamp in Firebase Firestore?
easy
A. Store as a number representing milliseconds since epoch
B. Use a string with date format like '2024-06-01'
C. Use the Firebase Timestamp type
D. Use a boolean true or false

Solution

  1. Step 1: Understand Firestore timestamp storage

    Firestore has a special Timestamp type to store date and time accurately.
  2. Step 2: Compare options

    Strings and numbers can store dates but lack Firestore's timestamp features; booleans are unrelated.
  3. Final Answer:

    Use the Firebase Timestamp type -> Option C
  4. Quick Check:

    Timestamp type stores dates best [OK]
Hint: Use Firebase Timestamp for dates, not strings or numbers [OK]
Common Mistakes:
  • Storing dates as plain strings
  • Using numbers without Timestamp type
  • Confusing booleans with dates
3. What will be the data type of the field location after this Firestore document is saved?
const docData = { location: new firebase.firestore.GeoPoint(40.7128, -74.0060) };
medium
A. GeoPoint
B. Array
C. String
D. Map

Solution

  1. Step 1: Identify the data type used

    The code uses new firebase.firestore.GeoPoint() which creates a GeoPoint object.
  2. Step 2: Understand Firestore storage

    Firestore stores GeoPoint objects as GeoPoint type, representing geographic coordinates.
  3. Final Answer:

    GeoPoint -> Option A
  4. Quick Check:

    GeoPoint stores latitude and longitude [OK]
Hint: GeoPoint objects store coordinates, not strings or arrays [OK]
Common Mistakes:
  • Thinking GeoPoint is stored as string
  • Assuming coordinates are arrays
  • Confusing GeoPoint with map type
4. You try to save this data in Firestore:
{ name: 'Alice', age: '25' }

But you want age to be a number. What is the error and how to fix it?
medium
A. No error, Firestore converts string to number automatically
B. No error, but age should be stored as boolean true
C. Error: Firestore does not allow strings, use boolean instead
D. Error: age is string, fix by storing age as number 25

Solution

  1. Step 1: Check data types in the object

    Age is stored as a string '25', not a number 25.
  2. Step 2: Understand Firestore type strictness

    Firestore stores data as given; it does not convert string to number automatically.
  3. Final Answer:

    Error: age is string, fix by storing age as number 25 -> Option D
  4. Quick Check:

    Store numbers as numbers, not strings [OK]
Hint: Store numbers as numbers, not strings to avoid type errors [OK]
Common Mistakes:
  • Assuming Firestore auto-converts types
  • Using booleans for numbers
  • Ignoring type mismatch warnings
5. You want to store a user's profile with name, age, location (latitude and longitude), and signup date in Firestore. Which data types should you use for location and signupDate fields?
hard
A. location as GeoPoint, signupDate as Timestamp
B. location as Map with lat/lng numbers, signupDate as string
C. location as Array of numbers, signupDate as number (milliseconds)
D. location as string 'lat,lng', signupDate as boolean true

Solution

  1. Step 1: Identify best types for location and date

    Firestore provides GeoPoint for geographic coordinates and Timestamp for dates.
  2. Step 2: Evaluate options

    Using GeoPoint and Timestamp ensures correct storage, querying, and indexing.
  3. Final Answer:

    location as GeoPoint, signupDate as Timestamp -> Option A
  4. Quick Check:

    Use GeoPoint and Timestamp for location and dates [OK]
Hint: Use GeoPoint for locations and Timestamp for dates [OK]
Common Mistakes:
  • Storing dates as strings
  • Using arrays for location
  • Confusing booleans with dates
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