Customize your Crashlytics crash reports

You can click into an issue and get a detailed event report in the DevOps & Engagement > Crashlytics dashboard of the Firebase console. You can customize those reports to help you better understand what's happening in your app and the circumstances around events reported to Crashlytics.

Log custom keys

Custom keys help you get the specific state of your app leading up to a crash. You can associate arbitrary key-value pairs with your crash reports, then use the custom keys to search and filter crash reports in the Firebase console.

View instructions for logging custom keys: iOS+ Android Web Flutter Unity

Log custom log messages

To give yourself more context for the events leading up to a crash, you can add custom Crashlytics logs to your app. Crashlytics associates the logs with your crash data and displays them in the Crashlytics dashboard.

View instructions for logging custom log messages: iOS+ Android Flutter Unity

Log user identifiers

To diagnose an issue, it's often helpful to know which of your users experienced a given crash. Crashlytics includes a way to anonymously identify users in your crash reports.

View instructions for logging user identifiers: iOS+ Android Flutter Unity

Report exceptions

In addition to automatically reporting your app's fatal events (like crashes), the Crashlytics SDK can report non-fatal exceptions as non-fatal events. For Futter and Unity, if you have exceptions that are expected, you can have the SDK report them as non-fatal events, as well. For web apps, you can manually report handled exceptions in addition to uncaught exceptions and routing errors.

For mobile apps, these non-fatal events are logged on-device and then sent along with the next fatal event report or when the end-user restarts the app.

View instructions for reporting exceptions: iOS+ Android Web Flutter Unity

Get breadcrumb logs

Breadcrumb logs give you a better understanding of the interactions that a user had with your app leading up to a crash, non-fatal, or ANR event. These logs can be helpful when trying to reproduce and debug an issue.

View instructions for getting breadcrumb logs: iOS+ Android Flutter Unity

Enable opt-in reporting

By default, Crashlytics automatically collects crash reports for all your app's users. To give users more control over the data they send, you can enable opt-in reporting by disabling automatic reporting and only sending data to Crashlytics when you choose to in your code.

View instructions for enabling opt-in reporting: iOS+ Android Flutter Unity

Force flush telemetry records

By default, the web telemetry engine batches logs in memory before uploading them. For short-lived execution environments, you can force an immediate upload of queued errors before the execution context terminates or reloads.

View instructions for flushing telemetry records: Web

Configure sampling rate

For web apps, you can configure a sampling rate in the Firebase console or using the Firebase Telemetry Admin API to sample a proportion of user sessions and control telemetry volume and cost.

View instructions for configuring sampling rate: Web

Disable or enable telemetry collection

For web apps, telemetry collection is enabled by default when you set up Crashlytics. You can disable or re-enable telemetry collection endpoints dynamically using the Firebase Telemetry Admin API.

View instructions for disabling or enabling telemetry collection: Web

Include GWP-ASan reports to debug memory corruption issues

Crashlytics can help you debug crashes caused by native memory errors by collecting GWP-ASan reports. These memory-related errors can be associated with memory corruption within your app, which is the leading cause of app security vulnerabilities.

View instructions for including GWP-ASan reports: Android NDK Unity