@@ -32,18 +32,10 @@ export function serialize(data: any): any {
3232 }
3333 case 'number' : {
3434 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 ) ;
4137 } else {
42- if ( hasDecimals ) {
43- return NSNumber . alloc ( ) . initWithFloat ( data ) ;
44- } else {
45- return data ;
46- }
38+ return NSNumber . numberWithLongLong ( data ) ;
4739 }
4840 }
4941
@@ -245,16 +237,19 @@ export class Query implements IQuery {
245237 return Query . fromNative ( this . native . queryLimitedToLast ( limit ) ) ;
246238 }
247239
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 ( ) ;
249241
250242 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+ }
258253 }
259254 }
260255
@@ -271,15 +266,11 @@ export class Query implements IQuery {
271266 } ) ;
272267 }
273268 ) ;
269+ callback [ '__fbHandle' ] = handle ;
270+ callback [ '__fbEventType' ] = eventType ;
271+ callback [ '__fbContext' ] = context ;
274272
275- this . #handles. set (
276- {
277- eventType,
278- callback,
279- context,
280- } ,
281- handle
282- ) ;
273+ this . #handles. set ( callback , handle ) ;
283274
284275 return callback ;
285276 }
0 commit comments