Bird
Raised Fist0
Firebasecloud~20 mins

User profile data in Firebase - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
User Profile Data Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ service_behavior
intermediate
2:00remaining
How does Firebase Authentication handle user profile updates?

When a user updates their profile information using Firebase Authentication's updateProfile method, what happens to the stored user data?

AThe profile data update triggers a full user account deletion and recreation.
BThe profile data is updated on Firebase servers and immediately reflected in the user's authentication token.
CThe profile data is updated on Firebase servers but requires the user to sign out and sign in again to see changes.
DThe profile data is updated only locally on the client and not saved to Firebase servers.
Attempts:
2 left
💡 Hint

Think about how Firebase keeps user data consistent across sessions.

❓ Architecture
intermediate
2:00remaining
Best practice for storing user profile data in Firebase

Which Firebase service is best suited for storing detailed user profile data that can be queried and updated frequently?

AFirebase Cloud Firestore
BFirebase Realtime Database
CFirebase Authentication user profile fields only
DFirebase Cloud Storage
Attempts:
2 left
💡 Hint

Consider which service supports flexible queries and structured data.

❓ security
advanced
2:30remaining
Securing user profile data in Firebase Firestore

Given a Firestore collection 'users' where each document ID matches the user's UID, which security rule correctly restricts read and write access so users can only access their own profile data?

Firebase
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth.uid == userId;
    }
  }
}
Arequest.auth.token.email_verified == true
Brequest.time < timestamp.date(2025, 1, 1)
Crequest.auth.uid != userId
Drequest.auth.uid == userId
Attempts:
2 left
💡 Hint

Think about how to match the authenticated user with the document ID.

❓ Configuration
advanced
2:30remaining
Firebase Cloud Functions to update user profile data

You want to automatically update a user's profile document in Firestore whenever their Firebase Authentication profile changes. Which Cloud Function trigger should you use?

Afunctions.auth.user().onUpdate()
Bfunctions.firestore.document('users/{userId}').onUpdate()
Cfunctions.auth.user().onCreate()
Dfunctions.database.ref('/users/{userId}').onWrite()
Attempts:
2 left
💡 Hint

Consider which event fires when a Firebase Authentication user profile changes.

✅ Best Practice
expert
3:00remaining
Handling user profile data consistency across Firebase Authentication and Firestore

What is the best approach to keep user profile data consistent between Firebase Authentication and Firestore when users update their profile?

AUpdate Firebase Authentication profile only and ignore Firestore data.
BManually update both Firebase Authentication and Firestore profiles on the client side without synchronization.
CUse a Cloud Function triggered on Firebase Authentication user update to sync changes to Firestore.
DUpdate Firestore profile only and do not update Firebase Authentication profile.
Attempts:
2 left
💡 Hint

Think about automating synchronization to avoid data mismatch.

Practice

(1/5)
1. What is the main purpose of storing user profile data in Firebase Firestore?
easy
A. To host static website files
B. To run server-side scripts automatically
C. To send emails to users
D. To save personal information for each user securely

Solution

  1. Step 1: Understand user profile data purpose

    User profile data holds personal details like name and email for each user.
  2. Step 2: Identify Firebase Firestore role

    Firestore stores this data securely and allows easy access and updates.
  3. Final Answer:

    To save personal information for each user securely -> Option D
  4. Quick Check:

    User profile data = personal info storage [OK]
Hint: User profiles store personal info, not run scripts or host files [OK]
Common Mistakes:
  • Confusing Firestore with hosting or email services
  • Thinking Firestore runs backend code automatically
  • Assuming user profiles are for sending emails
2. Which Firebase Firestore syntax correctly creates a document for a user profile with ID 'user123'?
easy
A. db.collection('users').doc('user123').set({name: 'Alice'})
B. db.users('user123').add({name: 'Alice'})
C. db.collection('users').add('user123', {name: 'Alice'})
D. db.doc('users/user123').create({name: 'Alice'})

Solution

  1. Step 1: Review Firestore document creation syntax

    Use collection('name').doc('id').set(data) to create or overwrite a document.
  2. Step 2: Match syntax with options

    db.collection('users').doc('user123').set({name: 'Alice'}) matches correct syntax: collection, doc, then set with data object.
  3. Final Answer:

    db.collection('users').doc('user123').set({name: 'Alice'}) -> Option A
  4. Quick Check:

    Correct Firestore doc creation = db.collection('users').doc('user123').set({name: 'Alice'}) [OK]
Hint: Use collection().doc().set() to create user profile docs [OK]
Common Mistakes:
  • Using add() with document ID specified
  • Wrong method names like create() instead of set()
  • Incorrect chaining of methods
3. Given this code snippet, what will be the output if the user document does not exist?
const docRef = db.collection('users').doc('user999');
docRef.get().then(doc => {
  if (doc.exists) {
    console.log(doc.data().name);
  } else {
    console.log('No user found');
  }
});
medium
A. No user found
B. undefined
C. Error: Document not found
D. null

Solution

  1. Step 1: Understand doc.exists property

    doc.exists is false if document does not exist in Firestore.
  2. Step 2: Follow code logic for missing document

    If doc.exists is false, code logs 'No user found'.
  3. Final Answer:

    No user found -> Option A
  4. Quick Check:

    Missing doc triggers else block = 'No user found' [OK]
Hint: Check doc.exists before accessing data to avoid errors [OK]
Common Mistakes:
  • Assuming doc.data() returns null or undefined
  • Expecting an error instead of else block output
  • Ignoring the else condition
4. Identify the error in this Firebase Firestore code to update a user's profile name:
db.collection('users').doc('user123').update({
  username: 'Bob'
});
medium
A. update() cannot be used to change existing fields
B. Missing await or then to handle promise
C. Field name should be 'name' not 'username'
D. Document ID 'user123' must be a number

Solution

  1. Step 1: Check Firestore update method usage

    update() returns a promise and should be handled with await or then.
  2. Step 2: Identify missing promise handling

    Code does not handle promise, which can cause silent failures.
  3. Final Answer:

    Missing await or then to handle promise -> Option B
  4. Quick Check:

    Firestore update returns promise, must handle it [OK]
Hint: Always handle promises with await or then in Firestore calls [OK]
Common Mistakes:
  • Thinking update() cannot change fields
  • Assuming field names must be fixed
  • Believing document IDs must be numeric
5. You want to store user profiles with optional phone numbers. Which Firestore data structure best handles missing phone numbers without errors?
hard
A. Set phone number field to empty string if missing
B. Always set phone number field to null
C. Include phone number field only if user provides it
D. Create a separate collection for phone numbers

Solution

  1. Step 1: Understand optional fields in Firestore

    Firestore allows documents to omit fields that are not provided.
  2. Step 2: Choose best practice for optional data

    Including the phone number field only when available avoids storing empty or null values and reduces confusion.
  3. Final Answer:

    Include phone number field only if user provides it -> Option C
  4. Quick Check:

    Omit optional fields if missing to keep data clean [OK]
Hint: Omit optional fields instead of storing empty or null values [OK]
Common Mistakes:
  • Storing empty strings which can confuse queries
  • Using null values that may cause unexpected behavior
  • Overcomplicating with separate collections for simple optional data
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