@@ -32,18 +32,10 @@ export function serialize(data: any): any {
32
32
}
33
33
case 'number' : {
34
34
const hasDecimals = numberHasDecimals ( data ) ;
35
- if ( numberIs64Bit ( data ) ) {
36
- if ( hasDecimals ) {
37
- return NSNumber . alloc ( ) . initWithDouble ( data ) ;
38
- } else {
39
- return NSNumber . alloc ( ) . initWithLongLong ( data ) ;
40
- }
35
+ if ( hasDecimals ) {
36
+ return NSNumber . numberWithDouble ( data ) ;
41
37
} else {
42
- if ( hasDecimals ) {
43
- return NSNumber . alloc ( ) . initWithFloat ( data ) ;
44
- } else {
45
- return data ;
46
- }
38
+ return NSNumber . numberWithLongLong ( data ) ;
47
39
}
48
40
}
49
41
@@ -245,16 +237,19 @@ export class Query implements IQuery {
245
237
return Query . fromNative ( this . native . queryLimitedToLast ( limit ) ) ;
246
238
}
247
239
248
- #handles: Map < { eventType : EventType ; callback ?: ( a : DataSnapshot , b : string ) => void ; context ?: any } , number > = new Map ( ) ;
240
+ #handles: Map < ( a : DataSnapshot , b : string ) => void , number > = new Map ( ) ;
249
241
250
242
off ( eventType ?: EventType , callback ?: ( a : DataSnapshot , b : string ) => void , context ?: Record < string , any > ) : void {
251
- const handle = this . #handles. get ( {
252
- eventType,
253
- callback,
254
- context,
255
- } ) ;
256
- if ( handle ) {
257
- this . native . removeObserverWithHandle ( handle ) ;
243
+ const handle = callback ?. [ '__fbHandle' ] ;
244
+ const event = callback ?. [ '__fbEventType' ] ;
245
+ if ( typeof handle === 'number' && event === eventType ) {
246
+ if ( this . #handles. has ( callback ) ) {
247
+ this . native . removeObserverWithHandle ( handle ) ;
248
+ callback [ '__fbHandle' ] = undefined ;
249
+ callback [ '__fbEventType' ] = undefined ;
250
+ callback [ '__fbContext' ] = undefined ;
251
+ this . #handles. delete ( callback ) ;
252
+ }
258
253
}
259
254
}
260
255
@@ -271,15 +266,11 @@ export class Query implements IQuery {
271
266
} ) ;
272
267
}
273
268
) ;
269
+ callback [ '__fbHandle' ] = handle ;
270
+ callback [ '__fbEventType' ] = eventType ;
271
+ callback [ '__fbContext' ] = context ;
274
272
275
- this . #handles. set (
276
- {
277
- eventType,
278
- callback,
279
- context,
280
- } ,
281
- handle
282
- ) ;
273
+ this . #handles. set ( callback , handle ) ;
283
274
284
275
return callback ;
285
276
}
0 commit comments