Crash Reporting
Learn to report Flutter errors to Firebase Crashlytics.
Reporting errors in the Flutter app
In this lesson, we will learn how to use Firebase Crashlytics to report errors and crashes happening when our app is running. Firebase Crashlytics does this in three ways:
-
Logs: Logging events in our application so that they can be attached to crash reports for context in case our app crashes.
-
Crash reports: Each crash is automatically turned into a crash report and sent when the application opens the next time.
-
Stack traces: Even when our application catches and handles an error, Crashlytics still sends the Dart stack trace.
Integrating Firebase Crashlytics into our application involves the following steps:
- Creating a project on Firebase Console
- Adding the
firebase_core
andfirebase_crashlytics
dependencies - Initializing Firebase usage within the application
- Reporting uncaught Flutter framework errors to Crashlytics
- Reporting zoned errors to Firebase Crashlytics
We’ll use the sample application below to learn how to integrate Firebase Crashlytics with Flutter:
# This file configures the analyzer, which statically analyzes Dart code to # check for errors, warnings, and lints. # # The issues identified by the analyzer are surfaced in the UI of Dart-enabled # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be # invoked from the command line by running `flutter analyze`. # The following line activates a set of recommended lints for Flutter apps, # packages, and plugins designed to encourage good coding practices. include: package:flutter_lints/flutter.yaml linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` # included above or to enable additional rules. A list of all available lints # and their documentation is published at # https://dart-lang.github.io/linter/lints/index.html. # # Instead of disabling a lint rule for the entire project in the # section below, it can also be suppressed for a single line of code # or a specific dart file by using the `// ignore: name_of_lint` and # `// ignore_for_file: name_of_lint` syntax on the line or in the file # producing the lint. rules: # avoid_print: false # Uncomment to disable the `avoid_print` rule # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule # Additional information about this file can be found at # https://dart.dev/guides/language/analysis-options
Creating a Firebase project on Firebase Console
If you haven’t already, use the ...