Bird
Raised Fist0
Firebasecloud~5 mins

Crash reporting in Firebase - Commands & Configuration

Choose your learning style10 modes available
Introduction
Crash reporting helps you find and fix errors in your app by collecting details about crashes automatically. It saves you time by showing what went wrong without needing users to report issues manually.
When you want to know why your app crashes on users' devices without asking them.
When you need to prioritize fixing bugs based on how often they happen.
When you want to see detailed error logs and device info to understand crashes better.
When you want to improve app stability by tracking crashes after each update.
When you want to monitor crash trends over time to measure app quality.
Commands
Log in to your Firebase account to access your projects and services.
Terminal
firebase login
Expected OutputExpected
✔ Success! Logged in as your-email@example.com
Initialize Crashlytics in your Firebase project to set up crash reporting.
Terminal
firebase init crashlytics
Expected OutputExpected
Crashlytics initialization complete. Follow the instructions to add Crashlytics SDK to your app.
Deploy Crashlytics configuration to Firebase to enable crash reporting for your app.
Terminal
firebase deploy --only crashlytics
Expected OutputExpected
✔ Deploy complete! Project Console: https://console.firebase.google.com/project/my-app/overview
→
--only - Deploy only the specified Firebase service, here Crashlytics.
List recent crash reports collected by Crashlytics to see errors your app encountered.
Terminal
firebase crashlytics:reports:list
Expected OutputExpected
Report ID Timestamp Issue Type 123abc456def7890 2024-06-01 12:34 Fatal Exception 789xyz123uvw4567 2024-06-01 11:20 ANR
Key Concept

If you remember nothing else from this pattern, remember: Crash reporting automatically collects and shows app crash details so you can fix bugs faster without waiting for user feedback.

Common Mistakes
Not adding the Crashlytics SDK to the app after initializing Crashlytics in Firebase.
Without the SDK, the app cannot send crash data to Firebase, so no reports will appear.
Follow Firebase instructions to add and initialize the Crashlytics SDK in your app code.
Running 'firebase deploy' without specifying '--only crashlytics' after initialization.
This may deploy unrelated services or miss deploying Crashlytics configuration properly.
Use 'firebase deploy --only crashlytics' to deploy only Crashlytics settings.
Ignoring the login step before running Firebase CLI commands.
Commands will fail because Firebase CLI needs authentication to access your project.
Always run 'firebase login' first to authenticate your session.
Summary
Use 'firebase login' to authenticate your Firebase CLI session.
Run 'firebase init crashlytics' to set up Crashlytics in your project.
Deploy Crashlytics configuration with 'firebase deploy --only crashlytics'.
Check crash reports using 'firebase crashlytics:reports:list' to see app errors.

Practice

(1/5)
1. What is the main purpose of Firebase Crashlytics in an app?
easy
A. To store user data securely
B. To manage user authentication
C. To improve app loading speed
D. To automatically collect and report app crashes

Solution

  1. Step 1: Understand Crashlytics role

    Firebase Crashlytics is designed to track and report app crashes automatically.
  2. Step 2: Compare with other options

    Storing user data, improving speed, and managing authentication are not Crashlytics functions.
  3. Final Answer:

    To automatically collect and report app crashes -> Option D
  4. Quick Check:

    Crashlytics = crash reporting [OK]
Hint: Crashlytics = crash reports, not data or speed [OK]
Common Mistakes:
  • Confusing Crashlytics with user data storage
  • Thinking it speeds up the app
  • Mixing it with authentication services
2. Which Firebase Crashlytics method is used to log custom messages before a crash?
easy
A. crashlytics.sendReport()
B. crashlytics.recordError()
C. crashlytics.log()
D. crashlytics.startSession()

Solution

  1. Step 1: Identify logging method

    The method to add custom logs before a crash is crashlytics.log().
  2. Step 2: Understand other methods

    recordError() reports errors, sendReport() and startSession() are not valid Crashlytics methods.
  3. Final Answer:

    crashlytics.log() -> Option C
  4. Quick Check:

    Logging = crashlytics.log() [OK]
Hint: Use .log() to add messages before crash [OK]
Common Mistakes:
  • Using recordError() to log messages
  • Assuming sendReport() exists
  • Confusing startSession() with logging
3. Given this code snippet, what will Crashlytics report?
try {
  throw new Error('Test crash');
} catch (e) {
  firebase.crashlytics().recordError(e);
}
medium
A. Crashlytics reports a non-fatal error with message 'Test crash'
B. Crashlytics logs a warning but no error
C. App crashes immediately without reporting
D. No crash reported because error is caught

Solution

  1. Step 1: Analyze try-catch behavior

    The error is thrown but caught, so the app does not crash.
  2. Step 2: Understand recordError effect

    recordError() sends a non-fatal error report to Crashlytics with the error message.
  3. Final Answer:

    Crashlytics reports a non-fatal error with message 'Test crash' -> Option A
  4. Quick Check:

    recordError() = non-fatal error report [OK]
Hint: recordError() reports caught errors as non-fatal [OK]
Common Mistakes:
  • Thinking caught errors cause app crash
  • Assuming no report if error is caught
  • Confusing recordError() with crash trigger
4. You added firebase.crashlytics().log('User clicked button'); but no logs appear in Crashlytics dashboard. What is the likely issue?
medium
A. Logs only appear after a crash occurs
B. log() method does not exist in Crashlytics
C. Crashlytics SDK is not initialized properly
D. You must call sendReport() to send logs

Solution

  1. Step 1: Check Crashlytics log behavior

    Logs sent by log() appear only when a crash happens afterward.
  2. Step 2: Verify other options

    SDK initialization is required but if logs never appear, it's likely due to no crash. log() exists and sendReport() is not a Crashlytics method.
  3. Final Answer:

    Logs only appear after a crash occurs -> Option A
  4. Quick Check:

    Logs show after crash [OK]
Hint: Logs appear only after crash triggers [OK]
Common Mistakes:
  • Assuming logs show immediately
  • Thinking log() method is missing
  • Trying to send logs manually
5. How can you ensure that a caught error with extra context is reported to Firebase Crashlytics as a non-fatal issue with custom keys?
hard
A. Only use crashlytics().log() with error message
B. Use crashlytics().setCustomKey() before recordError()
C. Throw the error again to trigger a crash
D. Call crashlytics().sendReport() after catching error

Solution

  1. Step 1: Add context with custom keys

    Use setCustomKey() to add extra info about the error context.
  2. Step 2: Report error as non-fatal

    Call recordError() to send the caught error along with custom keys to Crashlytics.
  3. Final Answer:

    Use crashlytics().setCustomKey() before recordError() -> Option B
  4. Quick Check:

    Custom keys + recordError() = detailed non-fatal report [OK]
Hint: Set keys before recordError() for context [OK]
Common Mistakes:
  • Only logging message without keys
  • Throwing error again causes crash
  • Using non-existent sendReport() method
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