@@ -35,7 +35,7 @@ public static void todoNote(final String tag, final String name, final Callback
35
35
/**
36
36
* send a JS event
37
37
**/
38
- public static void sendEvent (final ReactContext context ,
38
+ public static void sendEvent (final ReactContext context ,
39
39
String eventName ,
40
40
WritableMap params ) {
41
41
context
@@ -52,9 +52,28 @@ public static WritableMap dataSnapshotToMap(String name, DataSnapshot dataSnapsh
52
52
data .putBoolean ("hasChildren" , dataSnapshot .hasChildren ());
53
53
54
54
data .putDouble ("childrenCount" , dataSnapshot .getChildrenCount ());
55
-
56
- WritableMap valueMap = FirestackUtils .castSnapshotValue (dataSnapshot );
57
- data .putMap ("value" , valueMap );
55
+ if (!dataSnapshot .hasChildren () && dataSnapshot .getValue () != null ) {
56
+ String type = dataSnapshot .getValue ().getClass ().getName ();
57
+ switch (type ) {
58
+ case "java.lang.Boolean" :
59
+ data .putBoolean ("value" , (Boolean ) dataSnapshot .getValue ());
60
+ break ;
61
+ case "java.lang.Long" :
62
+ data .putInt ("value" ,(Integer )(((Long ) dataSnapshot .getValue ()).intValue ()));
63
+ break ;
64
+ case "java.lang.Double" :
65
+ data .putDouble ("value" ,(Double ) dataSnapshot .getValue ());
66
+ break ;
67
+ case "java.lang.String" :
68
+ data .putString ("value" ,(String ) dataSnapshot .getValue ());
69
+ break ;
70
+ default :
71
+ data .putString ("value" , null );
72
+ }
73
+ }else {
74
+ WritableMap valueMap = FirestackUtils .castSnapshotValue (dataSnapshot );
75
+ data .putMap ("value" , valueMap );
76
+ }
58
77
59
78
Object priority = dataSnapshot .getPriority ();
60
79
if (priority == null ) {
@@ -176,4 +195,4 @@ public static List<Object> recursivelyDeconstructReadableArray(ReadableArray rea
176
195
}
177
196
return deconstructedList ;
178
197
}
179
- }
198
+ }
0 commit comments