Bird
Raised Fist0
Firebasecloud~30 mins

Why Realtime Database differs from Firestore in Firebase - See It in Action

Choose your learning style10 modes available
Why Realtime Database differs from Firestore
📖 Scenario: You are learning about Firebase databases. Firebase offers two main database services: Realtime Database and Firestore. Both store data but work differently under the hood.Imagine you want to build a chat app. You need to understand how these two databases handle data storage and updates to choose the right one.
🎯 Goal: Build a simple Firebase configuration that shows the key difference between Realtime Database and Firestore in how they store and update data.
📋 What You'll Learn
Create a Firebase Realtime Database reference with a sample data path
Create a Firestore collection reference with a sample document
Add a configuration variable to switch between Realtime Database and Firestore
Write code to update data in the selected database type
💡 Why This Matters
🌍 Real World
Choosing between Firebase Realtime Database and Firestore is important when building apps that need real-time data syncing, like chat apps or live dashboards.
💼 Career
Understanding these two Firebase databases helps developers design scalable and efficient cloud data storage solutions.
Progress0 / 4 steps
1
Setup Firebase Realtime Database reference
Create a variable called realtimeRef that points to the Firebase Realtime Database path 'chat/messages' using firebase.database().ref().
Firebase
Hint

Use firebase.database().ref('chat/messages') to get the reference.

2
Setup Firestore collection reference
Create a variable called firestoreRef that points to the Firestore collection 'chatMessages' using firebase.firestore().collection().
Firebase
Hint

Use firebase.firestore().collection('chatMessages') to get the collection reference.

3
Add database type configuration
Create a variable called useFirestore and set it to true to select Firestore, or false to select Realtime Database.
Firebase
Hint

Set useFirestore to true or false depending on which database you want to use.

4
Write update logic for selected database
Write code that updates the message { text: 'Hello, world!' } in the selected database. Use firestoreRef.add() if useFirestore is true, otherwise use realtimeRef.push().
Firebase
Hint

Use an if statement to check useFirestore. Call add() on firestoreRef or push() on realtimeRef.

Practice

(1/5)
1. What is a key difference between Firebase Realtime Database and Firestore in how they store data?
easy
A. Realtime Database stores data as one large JSON tree, while Firestore uses collections and documents.
B. Realtime Database uses tables and rows, Firestore uses JSON files.
C. Realtime Database stores data in XML format, Firestore uses CSV files.
D. Realtime Database uses collections and documents, Firestore uses one big JSON tree.

Solution

  1. Step 1: Understand Realtime Database data structure

    Realtime Database organizes data as a single large JSON tree, making it simple but less structured.
  2. Step 2: Understand Firestore data structure

    Firestore organizes data into collections and documents, allowing more structure and flexibility.
  3. Final Answer:

    Realtime Database stores data as one large JSON tree, while Firestore uses collections and documents. -> Option A
  4. Quick Check:

    Data structure difference = Realtime Database stores data as one large JSON tree, while Firestore uses collections and documents. [OK]
Hint: Remember: JSON tree vs collections-documents [OK]
Common Mistakes:
  • Confusing Firestore's collections with Realtime Database's JSON tree
  • Thinking both use the same data structure
  • Mixing up file formats like XML or CSV
2. Which of the following is the correct way to reference a document in Firestore?
easy
A. db.ref('users/user123')
B. db.collection('users').doc('user123')
C. db.table('users').row('user123')
D. db.get('users/user123')

Solution

  1. Step 1: Identify Firestore syntax

    Firestore uses collections and documents accessed by db.collection('name').doc('id').
  2. Step 2: Compare options

    db.collection('users').doc('user123') matches Firestore syntax; db.ref('users/user123') is Realtime Database style; Options C and D are invalid.
  3. Final Answer:

    db.collection('users').doc('user123') -> Option B
  4. Quick Check:

    Firestore document reference = db.collection('users').doc('user123') [OK]
Hint: Firestore uses collection().doc() syntax [OK]
Common Mistakes:
  • Using Realtime Database syntax for Firestore
  • Confusing doc() with ref()
  • Trying to use SQL-like table and row methods
3. Consider this Firestore query code:
const users = await db.collection('users').where('age', '>', 18).get();
console.log(users.docs.length);

What will this code output compared to a similar Realtime Database query?
medium
A. Always zero because Firestore cannot filter by age.
B. Syntax error because Firestore does not support where queries.
C. Number of users older than 18, Firestore supports this query directly.
D. Number of users older than 18, but Realtime Database cannot do this query.

Solution

  1. Step 1: Understand Firestore query capabilities

    Firestore supports advanced queries like filtering with where clauses.
  2. Step 2: Compare with Realtime Database

    Realtime Database has limited querying and cannot filter by fields easily.
  3. Final Answer:

    Number of users older than 18, Firestore supports this query directly. -> Option C
  4. Quick Check:

    Firestore advanced queries = Number of users older than 18, Firestore supports this query directly. [OK]
Hint: Firestore supports where queries; Realtime Database limited [OK]
Common Mistakes:
  • Thinking Firestore cannot filter data
  • Assuming Realtime Database supports complex queries
  • Confusing query syntax between databases
4. You wrote this Realtime Database code:
const ref = db.ref('users').orderByChild('age').equalTo(25);
ref.on('value', snapshot => { console.log(snapshot.val()); });

But it returns null even though users with age 25 exist. What is the likely issue?
medium
A. Realtime Database cannot query by child properties.
B. Firestore syntax was used instead of Realtime Database syntax.
C. The database path 'users' does not exist.
D. The query is invalid; Realtime Database requires indexes for orderByChild queries.

Solution

  1. Step 1: Check Realtime Database query requirements

    Realtime Database needs proper indexing for orderByChild queries to work.
  2. Step 2: Identify cause of null result

    Without indexes, the query returns null even if data exists.
  3. Final Answer:

    The query is invalid; Realtime Database requires indexes for orderByChild queries. -> Option D
  4. Quick Check:

    Missing index causes null result = The query is invalid; Realtime Database requires indexes for orderByChild queries. [OK]
Hint: Realtime DB needs indexes for orderByChild queries [OK]
Common Mistakes:
  • Confusing Firestore and Realtime Database syntax
  • Assuming data path is missing without checking
  • Believing Realtime Database cannot query child properties
5. You want to build a chat app with many users and complex queries on messages. Which Firebase database should you choose and why?
hard
A. Use Firestore because it supports complex queries and scales well.
B. Use Realtime Database because it scales better for complex queries.
C. Use Realtime Database because it uses collections and documents.
D. Use Firestore because it stores data as one big JSON tree.

Solution

  1. Step 1: Analyze app requirements

    A chat app with many users and complex queries needs good scaling and query support.
  2. Step 2: Compare database features

    Firestore supports complex queries and scales better than Realtime Database for large apps.
  3. Final Answer:

    Use Firestore because it supports complex queries and scales well. -> Option A
  4. Quick Check:

    Complex queries + scaling = Firestore [OK]
Hint: Choose Firestore for complex queries and scaling [OK]
Common Mistakes:
  • Choosing Realtime Database for complex queries
  • Confusing data structure descriptions
  • Ignoring scaling needs for large apps
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