
Firebase Crashlytics supports React Native through the @react-native-firebase/crashlytics module, which runs on top of @react-native-firebase/app. It records native crashes and unhandled JavaScript exceptions with stack traces, and Expo apps add it with a config plugin. Crashlytics costs nothing on both Firebase plans. To see what users did before a crash, pair it with a session replay tool such as UXCam.
| Feature | Firebase Crashlytics | UXCam |
|---|---|---|
| React Native package | @react-native-firebase/crashlytics | react-native-ux-cam |
| Native crashes | Yes, with stack traces | Yes, plus ANRs and UI freezes |
| JavaScript errors | Unhandled exceptions recorded automatically | Logged as custom events |
| Session replay | No | Yes, linked to each crash |
| Expo | Config plugin in a development build | Development build or EAS Build |
| Pricing | No cost on the Spark and Blaze plans | Free trial with 100,000 sessions, then a custom quote |
Crash reports tell you where your app broke. They rarely tell you what the user was doing when it happened. This guide covers how Crashlytics works in React Native, what it costs and where it falls short. It also shows when UXCam for React Native is the better fit, or the right companion.
Yes. Crashlytics supports React Native through React Native Firebase, the officially recommended set of packages for using Firebase in React Native apps. A few things work differently from a native app:
It runs through React Native Firebase: You install @react-native-firebase/app and @react-native-firebase/crashlytics, then finish the native setup for iOS and Android. In Expo, you add the config plugin and use a development build.
It's off while you develop: Crashlytics is disabled in debug builds by default, because you already have stack traces there. Test crash reporting in a release build, or set crashlytics_debug_enabled to true in firebase.json.
It covers JavaScript and native crashes: The module installs a global JavaScript exception handler, so unhandled JavaScript exceptions are recorded with their stack trace. Native crashes are recorded too. For errors your code catches, call recordError.
Consent is up to you: If users must opt in to crash reporting, turn off automatic collection with crashlytics_auto_collection_enabled in firebase.json. Then enable it with setCrashlyticsCollectionEnabled once they agree.
There are alternatives: UXCam has a dedicated React Native SDK. It captures native crashes, ANRs and UI freezes next to session replays, and you can log JavaScript errors as custom events.
Install both packages and complete the native setup, or add the config plugin in Expo
Test crash reporting in a release build
Add opt-in handling if your users have to consent first
A crash report shows the stack trace, not the steps that led to it. If that's the question you need answered, a session replay tool like UXCam fills the gap.
Crashlytics is Firebase's crash reporter for iOS and Android apps, and React Native apps use it through React Native Firebase. It groups crashes by cause, shows stack traces and device details, and tells you how many users each crash affects. That makes it a common first choice for cross-platform teams.
Crashlytics covers the basics of crash reporting well:
Real-time alerts: Get notified about new crashes and crashes that suddenly affect more users.
Detailed error reports: See stack traces and device details for every crash.
User impact: Know how many users a crash affects, so you can fix the worst ones first.
Custom keys and logs: Attach your own keys and log lines to give each crash more context.
Crashlytics is free. It has no cost on either Firebase plan, so crash reporting never adds to your Firebase bill.
The two plans only differ for the rest of Firebase:
Spark plan (no cost): No-cost usage limits for Firebase products, with no payment method needed.
Blaze plan (pay as you go): Includes Spark's no-cost usage and charges only when other Firebase products go past those limits.
See Firebase's pricing page for the current limits.
Crashlytics is easy to recommend for crash reports alone. Its limits show up when you need to understand what users went through.
Easy to add: Two packages and the native setup, or a config plugin in Expo.
Detailed reports: Stack traces and device details help you find the cause quickly.
Clear dashboard: Crashes are grouped by issue, so the console stays easy to scan.
No cost: Crashlytics is free on both Firebase plans.
Little customization: Reports follow Firebase's format, with limited room to change it.
Tied to Firebase: You need a Firebase project, and some features depend on other Firebase products.
Not always instant: Crash reports upload the next time the app launches, so they can arrive with a delay.
No user context: You see the stack trace, not the screens and taps that led to the crash.
If you need to see what users did before a crash, UXCam is the stronger option. It also runs well next to Crashlytics.
UXCam is a product analytics platform for mobile apps and the web. Its React Native SDK records every session and captures native crashes, ANRs and UI freezes. Each issue links to the replay of the session it happened in. Tara, UXCam's AI analyst, also points you to where users struggle without being asked.
Session replays: Watch what users did before something went wrong.
Heatmaps: See where users tap on each screen, and where taps don't work.
Funnel analysis: Find the step where users drop out of a key flow.
Custom events: Log the actions that matter, including JavaScript errors.
Issue analytics: Native crashes, ANRs and UI freezes are captured automatically, each linked to the replay of the session it happened in.
UXCam is installed in more than 37,000 products across mobile apps and the web. Teams at Costa Coffee, Housing.com and Placemakers use it to find and fix the issues their users run into.
UXCam's pricing is based on your monthly sessions. Every account starts with a free trial that includes 100,000 sessions and full feature access.
After the trial, you get a custom quote based on your actual usage. See the plans page for details.
UXCam answers questions a crash report can't, at the cost of a little more setup.
Behavior and stability in one place: Session replays, heatmaps and funnels sit next to crashes and freezes.
Customizable dashboards: Build the reports your team actually checks.
Session replays: Watch the exact steps that led to an issue.
Insights before you ask: Tara surfaces what changed and where users struggle.
Manual screen tagging: React Native screens need a tag in code, usually one line per screen.
Privacy setup: Password and card fields are masked automatically, but other sensitive views need masking rules.
Use Crashlytics if you need free, reliable crash reports and nothing more. Add UXCam when you need to know why users crash or struggle: session replays, heatmaps and funnels show the steps behind each issue.
The two can run side by side. Let one tool own native crash handling, then attach UXCam's session URL to each Crashlytics report. Try UXCam for free to see it on your own app.
FAQ
Yes. Install @react-native-firebase/app and @react-native-firebase/crashlytics, then finish the native setup, or add the config plugin in an Expo development build. Crashlytics records native crashes and unhandled JavaScript exceptions. Reports reach the Firebase console from release builds, so test crash reporting in release mode.
Yes. Crashlytics has no cost on both Firebase plans: Spark, which needs no payment method, and Blaze, the pay-as-you-go plan. On Blaze, you only pay when other Firebase products you use go past their no-cost limits.
Yes. The React Native Firebase Crashlytics module installs a global JavaScript exception handler. It records a crash with the JavaScript stack trace whenever an unhandled exception is thrown. For errors your code catches, call recordError to send the stack trace as a non-fatal report.
Yes, but let one tool own native crash handling, because two crash handlers can conflict. If Crashlytics owns crashes, set enableCrashHandling to false in UXCam. You can still attach the UXCam session URL to each Crashlytics report, so you can replay what the user did.
UXCam pairs crash reporting with session replay. It captures native crashes, ANRs and UI freezes and links each one to the replay of its session, so you see the steps that led to the crash. It starts with a free trial of 100,000 sessions.
You might also be interested in these;
React Native Crashlytics: Step-by-Step Setup Guide
React Native Crash Reporting: Tools and Techniques
Dynatrace React Native: Setup, Pricing & Alternative
Instabug React Native: Setup, Pricing & Alternative
Ardent technophile exploring the world of mobile app product management at UXCam.
Master React Native Crashlytics integration with our step-by-step guide. Learn how an integration with UXCam can enhance your crash...
Product Analytics Expert
Explore our guide on .NET MAUI vs React Native to make an informed decision on the right framework for your cross-platform app development...
Product Analytics Expert
Explore how to integrate up Dynatrace with React Native, read expert reviews, and discover the best alternatives for optimizing your mobile...
Product Analytics Expert

