android: fixed once and on error handling

This commit is contained in:
Salakar
2017-03-07 16:54:04 +00:00
parent 677b1d2836
commit 214928ba7f
9 changed files with 81 additions and 48 deletions
@@ -4,7 +4,6 @@ import java.util.Map;
import java.util.HashMap;
import android.util.Log;
import android.content.Context;
import android.support.annotation.Nullable;
import com.facebook.react.bridge.Callback;
@@ -31,6 +30,7 @@ interface KeySetterFn {
public class RNFirebaseModule extends ReactContextBaseJavaModule implements LifecycleEventListener {
private static final String TAG = "RNFirebase";
private FirebaseApp app;
private ReactApplicationContext reactContext;
public RNFirebaseModule(ReactApplicationContext reactContext) {
super(reactContext);
@@ -146,7 +146,7 @@ public class RNFirebaseModule extends ReactContextBaseJavaModule implements Life
try {
Log.i(TAG, "Configuring app");
if (app == null) {
app = FirebaseApp.initializeApp(getReactApplicationContext().getBaseContext(), builder.build());
app = FirebaseApp.initializeApp(reactContext, builder.build());
}
Log.i(TAG, "Configured");
@@ -191,7 +191,7 @@ public class RNFirebaseDatabase extends ReactContextBaseJavaModule {
}
@ReactMethod
public void onOnce(final String path,
public void once(final String path,
final String modifiersString,
final ReadableArray modifiersArray,
final String eventName,
@@ -112,9 +112,11 @@ public class RNFirebaseDatabaseReference {
@Override
public void onCancelled(DatabaseError error) {
WritableMap err = Arguments.createMap();
err.putInt("errorCode", error.getCode());
err.putString("errorDetails", error.getDetails());
err.putString("description", error.getMessage());
err.putString("path", mPath);
err.putInt("code", error.getCode());
err.putString("modifiers", mModifiersString);
err.putString("details", error.getDetails());
err.putString("message", error.getMessage());
callback.invoke(err);
}
};
@@ -168,19 +170,15 @@ public class RNFirebaseDatabaseReference {
}
private void handleDatabaseError(final DatabaseError error) {
WritableMap err = Arguments.createMap();
err.putString("eventName", "database_error");
err.putString("path", mPath);
err.putString("modifiersString", mModifiersString);
err.putInt("errorCode", error.getCode());
err.putString("errorDetails", error.getDetails());
err.putString("msg", error.getMessage());
WritableMap errMap = Arguments.createMap();
WritableMap evt = Arguments.createMap();
evt.putString("eventName", "database_error");
evt.putMap("body", err);
errMap.putString("path", mPath);
errMap.putInt("code", error.getCode());
errMap.putString("modifiers", mModifiersString);
errMap.putString("details", error.getDetails());
errMap.putString("message", error.getMessage());
Utils.sendEvent(mReactContext, "database_error", evt);
Utils.sendEvent(mReactContext, "database_error", errMap);
}
private Query buildDatabaseQueryAtPathAndModifiers(final FirebaseDatabase firebaseDatabase,