@@ -3,11 +3,11 @@ import { AndroidActivityResultEventData } from "tns-core-modules/application";
33import lazy from "tns-core-modules/utils/lazy" ;
44import { ad as AndroidUtils } from "tns-core-modules/utils/utils" ;
55import {
6- DataSnapshot ,
6+ DataSnapshot , FBData , FBDataSingleEvent , FBErrorData , FirebaseQueryResult ,
77 firestore ,
88 GetAuthTokenOptions ,
99 GetAuthTokenResult ,
10- OnDisconnect as OnDisconnectBase ,
10+ OnDisconnect as OnDisconnectBase , QueryOptions ,
1111 User
1212} from "./firebase" ;
1313import {
@@ -1594,8 +1594,8 @@ firebase.update = (path, val) => {
15941594 } ) ;
15951595} ;
15961596
1597- firebase . query = ( updateCallback , path , options ) => {
1598- return new Promise ( ( resolve , reject ) => {
1597+ firebase . query = ( updateCallback : ( data : FBDataSingleEvent | FBErrorData ) => void , path : string , options : QueryOptions ) : Promise < any > => {
1598+ return new Promise < any > ( ( resolve , reject ) => {
15991599 try {
16001600 if ( firebase . instance === null ) {
16011601 reject ( "Run init() first!" ) ;
@@ -1681,10 +1681,24 @@ firebase.query = (updateCallback, path, options) => {
16811681 if ( options . singleEvent ) {
16821682 const listener = new com . google . firebase . database . ValueEventListener ( {
16831683 onDataChange : snapshot => {
1684- const data = firebase . getCallbackData ( "ValueChanged" , snapshot ) ;
1685- if ( updateCallback ) updateCallback ( data ) ;
1684+
1685+ const result = {
1686+ type : "ValueChanged" ,
1687+ key : snapshot . getKey ( ) ,
1688+ value : { } ,
1689+ children : [ ]
1690+ } ;
1691+
1692+ for ( let iterator = snapshot . getChildren ( ) . iterator ( ) ; iterator . hasNext ( ) ; ) {
1693+ const snap = iterator . next ( ) ;
1694+ const val = firebase . toJsObject ( snap . getValue ( ) ) ;
1695+ result . value [ snap . getKey ( ) ] = val ;
1696+ result . children . push ( val ) ;
1697+ }
1698+
1699+ if ( updateCallback ) updateCallback ( result ) ;
16861700 // resolve promise with data in case of single event, see https://github.com/EddyVerbruggen/nativescript-plugin-firebase/issues/126
1687- resolve ( data ) ;
1701+ resolve ( result ) ;
16881702 } ,
16891703 onCancelled : databaseError => {
16901704 if ( updateCallback ) updateCallback ( {
0 commit comments