Bird
Raised Fist0
Firebasecloud~20 mins

Offline persistence in Firebase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Offline Persistence Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
How does Firebase enable offline persistence?

Firebase Realtime Database can work offline by caching data locally. What happens when the device reconnects?

AIt discards all local changes and reloads data from the server.
BIt only caches data for read operations but not for writes.
CIt requires manual user action to sync local data with the server.
DIt synchronizes local changes with the server automatically.
Attempts:
2 left
💡 Hint

Think about how offline changes are handled when the connection returns.

❓ Configuration
intermediate
2:00remaining
Enabling offline persistence in Firebase Firestore

Which code snippet correctly enables offline persistence in Firebase Firestore for a web app?

Afirebase.firestore().enablePersistence();
Bfirebase.firestore().settings({ offline: true });
Cfirebase.firestore().enableOffline();
Dfirebase.firestore().persistence(true);
Attempts:
2 left
💡 Hint

Look for the official method to enable persistence.

❓ Architecture
advanced
2:00remaining
Offline persistence impact on data consistency

When using Firebase offline persistence, what is a common challenge related to data consistency?

AData conflicts can occur when multiple clients update the same data offline and then sync.
BOffline persistence disables all security rules temporarily.
CData is lost permanently if the app crashes while offline.
DOffline persistence prevents any data updates until reconnected.
Attempts:
2 left
💡 Hint

Consider what happens if two users change the same data offline.

❓ security
advanced
2:00remaining
Security considerations with offline persistence

What security risk should developers be aware of when enabling offline persistence in Firebase?

AOffline persistence allows unauthorized users to write data.
BOffline persistence disables Firebase Authentication checks.
CCached data on the device can be accessed if the device is compromised.
DData is encrypted on the device by default, so no risks exist.
Attempts:
2 left
💡 Hint

Think about what happens to data stored locally on a device.

✅ Best Practice
expert
2:00remaining
Best practice for handling offline writes in Firebase

Which approach best ensures user experience and data integrity when users write data offline in Firebase?

ADisable all write operations while offline to avoid conflicts.
BAllow users to write data offline and notify them when sync completes or fails.
CShow a loading indicator until the app reconnects and data syncs successfully.
DAutomatically discard offline writes if the connection is lost for more than 5 minutes.
Attempts:
2 left
💡 Hint

Consider user feedback and data reliability during offline usage.

Practice

(1/5)
1. What is the main purpose of enabling offline persistence in Firebase Firestore?
easy
A. To speed up internet connection
B. To save data locally so the app works without internet
C. To encrypt data on the server
D. To backup data to another cloud service

Solution

  1. Step 1: Understand offline persistence concept

    Offline persistence allows the app to store data locally on the device.
  2. Step 2: Identify the benefit

    This local storage lets the app work even when there is no internet connection.
  3. Final Answer:

    To save data locally so the app works without internet -> Option B
  4. Quick Check:

    Offline persistence = local data storage for offline use [OK]
Hint: Offline persistence means local data storage for offline use [OK]
Common Mistakes:
  • Thinking it speeds up internet
  • Confusing with data encryption
  • Assuming it backs up to another cloud
2. Which Firebase Firestore method correctly enables offline persistence in a web app?
easy
A. firebase.firestore().enablePersistence()
B. firebase.firestore().startPersistence()
C. firebase.firestore().enableOffline()
D. firebase.firestore().activatePersistence()

Solution

  1. Step 1: Recall the official method name

    The correct method to enable offline persistence is enablePersistence().
  2. Step 2: Check other options

    Other options like startPersistence(), enableOffline(), and activatePersistence() are not valid Firebase Firestore methods.
  3. Final Answer:

    firebase.firestore().enablePersistence() -> Option A
  4. Quick Check:

    Enable persistence method = enablePersistence() [OK]
Hint: Use enablePersistence() to turn on offline support [OK]
Common Mistakes:
  • Using incorrect method names
  • Confusing with other Firebase services
  • Missing parentheses after method
3. Consider this code snippet in a Firebase web app:
firebase.firestore().enablePersistence()
  .catch((err) => {
    if (err.code == 'failed-precondition') {
      console.log('Multiple tabs open');
    } else if (err.code == 'unimplemented') {
      console.log('Persistence not supported');
    }
  });

console.log('Persistence enabled');

What will be printed if the browser does not support offline persistence?
medium
A. Persistence not supported
B. Multiple tabs open
C. Persistence enabled
D. No output

Solution

  1. Step 1: Understand error handling in enablePersistence()

    If the browser does not support offline persistence, the error code is 'unimplemented'.
  2. Step 2: Identify the console output for 'unimplemented'

    The catch block logs 'Persistence not supported' for this error code.
  3. Final Answer:

    Persistence not supported -> Option A
  4. Quick Check:

    Unsupported browser error = 'unimplemented' message [OK]
Hint: Check error code 'unimplemented' for unsupported browsers [OK]
Common Mistakes:
  • Ignoring error codes
  • Assuming persistence always enables
  • Confusing 'failed-precondition' with unsupported
4. You wrote this code to enable offline persistence:
firebase.firestore().enablePersistence();
firebase.firestore().enablePersistence();

But your app throws an error about multiple tabs. What is the problem?
medium
A. You need to call enableIndexedDbPersistence() instead
B. You forgot to import Firebase
C. Persistence is not supported in your browser
D. Calling enablePersistence() twice causes a conflict

Solution

  1. Step 1: Analyze multiple calls to enablePersistence()

    Calling enablePersistence() more than once can cause a 'failed-precondition' error due to multiple tabs or instances.
  2. Step 2: Understand error cause

    This error means only one tab can have persistence enabled at a time, so calling it twice in the same app causes conflict.
  3. Final Answer:

    Calling enablePersistence() twice causes a conflict -> Option D
  4. Quick Check:

    Multiple enablePersistence() calls = conflict error [OK]
Hint: Call enablePersistence() only once per app instance [OK]
Common Mistakes:
  • Ignoring multiple calls cause errors
  • Assuming import errors cause this
  • Confusing with browser support issues
5. You want to enable offline persistence in a Firebase web app that may open in multiple tabs. Which approach correctly handles this scenario?
hard
A. Use enableIndexedDbPersistence() and catch 'failed-precondition' error to fallback to enableMultiTabIndexedDbPersistence()
B. Call enablePersistence() twice to ensure all tabs have persistence
C. Use enableMultiTabIndexedDbPersistence() and catch 'failed-precondition' error to fallback to enablePersistence()
D. Disable persistence and rely only on online data fetching

Solution

  1. Step 1: Understand multi-tab persistence support

    Firebase provides enableMultiTabIndexedDbPersistence() to allow persistence across multiple tabs.
  2. Step 2: Handle errors properly

    If multi-tab persistence fails with 'failed-precondition', fallback to single-tab enablePersistence() to avoid errors.
  3. Final Answer:

    Use enableMultiTabIndexedDbPersistence() and catch 'failed-precondition' error to fallback to enablePersistence() -> Option C
  4. Quick Check:

    Multi-tab persistence = enableMultiTabIndexedDbPersistence() with fallback [OK]
Hint: Use multi-tab persistence with fallback to single-tab [OK]
Common Mistakes:
  • Calling enablePersistence() multiple times
  • Ignoring multi-tab persistence errors
  • Disabling persistence unnecessarily
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