react-native-firebase-crash-report

React Native Firebase Crash Report


Keywords
React, ReactNative, Firebase, Crash, Crash Report, Custom Log, Crash Custom Log, Crash Report Custom Log
License
ISC
Install
npm install react-native-firebase-crash-report@1.1.0

Documentation

React Native Firebase Crash Report

npm version npm downloads

React Native Firebase Crash Report With Custom Log

Version

If you're using React Native >= 0.40, make sure to use react-native-firebase-crash-report >= 1.2.0

Usage

import FirebaseCrash from 'react-native-firebase-crash-report';

/*
 * Create custom log messages that will be included in the crash report
 */

FirebaseCrash.log('User logged in');

/*
 * Create custom log messages that will be included in the crash report and output to logcat/NSLog
 */

FirebaseCrash.logcat('User logged in');

// Android only
// Params:
// - message: string, required
// - debug level: int, optional, default 3 (https://developer.android.com/reference/android/util/Log.html)
// - tag: string, optional, default 'RNFirebaseCrashReport'
FirebaseCrash.logcat('User logged in', 3, 'MyTag');

/*
 * Report errors on demand
 *
 * iOS Note: calling this API on iOS will result in app crash
 */

FirebaseCrash.report('A weird thing just happened...');

Installation

Install node module

npm install --save react-native-firebase-crash-report

Linking libraries

rnpm link react-native-firebase-crash-report

iOS Configuration

Install Firebase From Cocoapods

For more information please visit Set Up Crash Reporting For iOS

Pre-check

If you are using RN < 0.29 you would have run into this problem, just follow the PR to fix it manually.

Go to your project's ios folder

cd <your_project>/ios

(Optional) Initialise Pod

Note: You can skip this step if you have pod initialised already.

pod init

Add pod 'Firebase/Core' and pod 'Firebase/Crash' to Podfile

 target 'YourProject' do
   # Uncomment this line if you're using Swift or would like to use dynamic frameworks
   use_frameworks!

   # Pods for YourProject
+  pod 'Firebase/Core'
+  pod 'Firebase/Crash'

   target 'YourProjectTests' do
     inherit! :search_paths
     # Pods for testing
   end

 end

Install Pods

pod install

Initialise Firebase

Add following code in your AppDelegate.m

 #import "AppDelegate.h"

 #import "RCTRootView.h"

+@import Firebase;

 @implementation AppDelegate

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {

   ...

   self.window.rootViewController = rootViewController;
   [self.window makeKeyAndVisible];
+
+  // Use Firebase library to configure APIs
+  [FIRApp configure];
+
   return YES;
 }

Android Configuration

For more information please visit Set Up Crash Reporting For Android

Upgrade Google Play Services and Google Repository

Upgrade Google Play Services and Google Repository

Add Google Services

  • In android/build.gradle
     dependencies {
         classpath 'com.android.tools.build:gradle:1.3.1'
         classpath 'de.undercouch:gradle-download-task:2.0.0'
+        classpath 'com.google.gms:google-services:3.0.0'
  • In android/app/build.gradle, add this line at the bottom of the file
apply plugin: 'com.google.gms.google-services'

(Optional) Manually linking libraries

  • app/build.gradle
dependencies {
  ...
  compile project(':react-native-firebase-analytics')
  compile project(':react-native-firebase-crash-report') <-- add this
  ...
}
  • settings.gradle
include ':react-native-firebase-analytics'
project(':react-native-firebase-analytics').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-analytics/android')

// add everything below this
include ':react-native-firebase-crash-report'
project(':react-native-firebase-crash-report').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-firebase-crash-report/android')
  • MainApplication.java
...
import com.ianlin.RNFirebaseCrashReport.RNFirebaseCrashReportPackage; <-- add this
...

@Override
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
    new MainReactPackage(),
    new FIRAnalyticsPackage(),
    ...
    new RNFirebaseCrashReportPackage(), <-- add this
    ...
  );
}

Contributing

Any pull requests, issue reports and suggestion are highly welcome.

License

ISC License (functionality equivalent to MIT License)