mirror of
https://github.com/zhigang1992/react-native-firebase.git
synced 2026-01-12 22:50:20 +08:00
[crashlytics] Add first version of crashlytics functionality
This commit is contained in:
@@ -2,9 +2,13 @@ buildscript {
|
||||
ext.firebaseVersion = '11.4.2'
|
||||
repositories {
|
||||
jcenter()
|
||||
maven {
|
||||
url 'https://maven.fabric.io/public'
|
||||
}
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:2.3.3'
|
||||
classpath 'io.fabric.tools:gradle:1.24.4'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,4 +95,7 @@ dependencies {
|
||||
compile "com.google.firebase:firebase-ads:$firebaseVersion"
|
||||
compile "com.google.firebase:firebase-firestore:$firebaseVersion"
|
||||
compile "com.google.firebase:firebase-invites:$firebaseVersion"
|
||||
compile('com.crashlytics.sdk.android:crashlytics:2.7.1@aar') {
|
||||
transitive = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package io.invertase.firebase.fabric.crashlytics;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.facebook.react.bridge.ReactMethod;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||
|
||||
import com.crashlytics.android.Crashlytics;
|
||||
|
||||
|
||||
public class RNFirebaseCrashlytics extends ReactContextBaseJavaModule {
|
||||
|
||||
private static final String TAG = "RNFirebaseCrashlytics";
|
||||
|
||||
public RNFirebaseCrashlytics(ReactApplicationContext reactContext) {
|
||||
super(reactContext);
|
||||
Log.d(TAG, "New instance");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void crash() {
|
||||
Crashlytics.getInstance().crash();
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void log(final String message) {
|
||||
Crashlytics.log(message);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void recordError(final int code, final String domain) {
|
||||
Crashlytics.logException(new Exception(code + ": " + domain));
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void setBoolValue(final String key, final boolean boolValue) {
|
||||
Crashlytics.setBool(key, boolValue);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void setFloatValue(final String key, final float floatValue) {
|
||||
Crashlytics.setFloat(key, floatValue);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void setIntValue(final String key, final int intValue) {
|
||||
Crashlytics.setInt(key, intValue);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void setStringValue(final String key, final String stringValue) {
|
||||
Crashlytics.setString(key, stringValue);
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
public void setUserIdentifier(String userId) {
|
||||
Crashlytics.setUserIdentifier(userId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package io.invertase.firebase.fabric.crashlytics;
|
||||
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.bridge.JavaScriptModule;
|
||||
import com.facebook.react.bridge.NativeModule;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.uimanager.UIManagerModule;
|
||||
import com.facebook.react.uimanager.ViewManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class RNFirebaseCrashlyticsPackage implements ReactPackage {
|
||||
public RNFirebaseCrashlyticsPackage() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param reactContext react application context that can be used to create modules
|
||||
* @return list of native modules to register with the newly created catalyst instance
|
||||
*/
|
||||
@Override
|
||||
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
|
||||
List<NativeModule> modules = new ArrayList<>();
|
||||
modules.add(new RNFirebaseCrashlytics(reactContext));
|
||||
|
||||
return modules;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param reactContext
|
||||
* @return a list of view managers that should be registered with {@link UIManagerModule}
|
||||
*/
|
||||
@Override
|
||||
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user