Skip to content

Commit 831ced1

Browse files
committed
Initial upgrade with fix for listeners being duplicated
1 parent 5378f62 commit 831ced1

File tree

8 files changed

+598
-249
lines changed

8 files changed

+598
-249
lines changed

android/src/main/java/io/fullstack/firestack/FirestackDatabase.java

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -191,43 +191,27 @@ public void onCancelled(DatabaseError error) {
191191
ChildEventListener listener = new ChildEventListener() {
192192
@Override
193193
public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
194-
if (name.equals("child_added")) {
195-
WritableMap data = self.dataSnapshotToMap(name, dataSnapshot);
196-
FirestackUtils.sendEvent(mReactContext, name, data);
197-
}
194+
self.handleDatabaseEvent(name, dataSnapshot);
198195
}
199196

200197
@Override
201198
public void onChildChanged(DataSnapshot dataSnapshot, String previousChildName) {
202-
if (name.equals("child_changed")) {
203-
WritableMap data = self.dataSnapshotToMap(name, dataSnapshot);
204-
FirestackUtils.sendEvent(mReactContext, name, data);
205-
}
199+
self.handleDatabaseEvent(name, dataSnapshot);
206200
}
207201

208202
@Override
209203
public void onChildRemoved(DataSnapshot dataSnapshot) {
210-
if (name.equals("child_removed")) {
211-
WritableMap data = self.dataSnapshotToMap(name, dataSnapshot);
212-
FirestackUtils.sendEvent(mReactContext, name, data);
213-
}
204+
self.handleDatabaseEvent(name, dataSnapshot);
214205
}
215206

216207
@Override
217208
public void onChildMoved(DataSnapshot dataSnapshot, String previousChildName) {
218-
if (name.equals("child_moved")) {
219-
WritableMap data = self.dataSnapshotToMap(name, dataSnapshot);
220-
FirestackUtils.sendEvent(mReactContext, name, data);
221-
}
209+
self.handleDatabaseEvent(name, dataSnapshot);
222210
}
223211

224212
@Override
225213
public void onCancelled(DatabaseError error) {
226-
WritableMap err = Arguments.createMap();
227-
err.putInt("errorCode", error.getCode());
228-
err.putString("errorDetails", error.getDetails());
229-
err.putString("description", error.getMessage());
230-
FirestackUtils.sendEvent(mReactContext, "error", err);
214+
self.handleDatabaseError(name, error);
231215
}
232216
};
233217
ref.addChildEventListener(listener);
@@ -341,6 +325,26 @@ public void onComplete(DatabaseError databaseError, DatabaseReference databaseRe
341325
}
342326

343327
// Private helpers
328+
private void handleDatabaseEvent(final String name, final DataSnapshot dataSnapshot) {
329+
WritableMap data = this.dataSnapshotToMap(name, dataSnapshot);
330+
WritableMap evt = Arguments.createMap();
331+
evt.putString("eventName", name);
332+
evt.putMap("body", data);
333+
FirestackUtils.sendEvent(mReactContext, "database_event", evt);
334+
}
335+
336+
private void handleDatabaseError(final String name, final DatabaseError error) {
337+
WritableMap err = Arguments.createMap();
338+
err.putInt("errorCode", error.getCode());
339+
err.putString("errorDetails", error.getDetails());
340+
err.putString("description", error.getMessage());
341+
342+
WritableMap evt = Arguments.createMap();
343+
evt.putString("eventName", name);
344+
evt.putMap("body", err);
345+
FirestackUtils.sendEvent(mReactContext, "database_error", evt);
346+
}
347+
344348
private void handleCallback(
345349
final String methodName,
346350
final Callback callback,

ios/Firestack/FirestackDatabase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
}
1818

19-
@property (nonatomic) NSArray *_DBHandles;
19+
@property (nonatomic) NSDictionary *_DBHandles;
2020
@property (nonatomic, weak) FIRDatabaseReference *ref;
2121

2222
@end

0 commit comments

Comments
 (0)