@@ -1640,41 +1640,36 @@ class Query implements QueryBase {
1640
1640
this . query = this . dbRef ;
1641
1641
}
1642
1642
1643
- on ( eventType : string , callback : ( a : any , b ?: string ) => any ) : Promise < any > {
1643
+ on ( eventType : string , callback : ( a : any , b ?: string ) => any ) : Function {
1644
1644
const onValueEvent = result => {
1645
- callback ( result ) ;
1645
+ callback ( result ) ;
1646
1646
} ;
1647
1647
1648
- return new Promise ( ( resolve , reject ) => {
1649
- try {
1650
- if ( firebase . instance === null ) {
1651
- reject ( "Run init() first!" ) ;
1652
- return ;
1653
- }
1654
- const listener = this . createEventListener ( eventType , onValueEvent ) ;
1648
+ try {
1649
+ if ( firebase . instance === null ) {
1650
+ throw new Error ( "Run init() first!" ) ;
1651
+ }
1652
+ const listener = this . createEventListener ( eventType , onValueEvent ) ;
1655
1653
1656
- if ( eventType === "value" ) {
1657
- this . query . addValueEventListener ( listener as com . google . firebase . database . ValueEventListener ) ;
1658
- } else if ( eventType === "child_added" || eventType === "child_changed" || eventType === "child_removed" || eventType === "child_moved" ) {
1659
- this . query . addChildEventListener ( listener as com . google . firebase . database . ChildEventListener ) ;
1660
- } else {
1661
- callback ( {
1662
- error : "Invalid eventType. Use one of the following: 'value', 'child_added', 'child_changed', 'child_removed', or 'child_moved'"
1663
- } ) ;
1664
- reject ( "Invalid eventType. Use one of the following: 'value', 'child_added', 'child_changed', 'child_removed', or 'child_moved'" ) ;
1665
- return ;
1666
- }
1667
- // Add listener to our map which keeps track of eventType: child/value events
1668
- if ( ! Query . eventListenerMap . has ( eventType ) ) {
1669
- Query . eventListenerMap . set ( eventType , [ ] ) ;
1670
- }
1671
- Query . eventListenerMap . get ( eventType ) . push ( listener ) ; // We need to keep track of the listeners to fully remove them when calling off
1672
- resolve ( ) ;
1673
- } catch ( ex ) {
1674
- console . log ( "Error in firebase.on: " + ex ) ;
1675
- reject ( ex ) ;
1654
+ if ( eventType === "value" ) {
1655
+ this . query . addValueEventListener ( listener as com . google . firebase . database . ValueEventListener ) ;
1656
+ } else if ( eventType === "child_added" || eventType === "child_changed" || eventType === "child_removed" || eventType === "child_moved" ) {
1657
+ this . query . addChildEventListener ( listener as com . google . firebase . database . ChildEventListener ) ;
1658
+ } else {
1659
+ callback ( {
1660
+ error : "Invalid eventType. Use one of the following: 'value', 'child_added', 'child_changed', 'child_removed', or 'child_moved'"
1661
+ } ) ;
1676
1662
}
1677
- } ) ;
1663
+ // Add listener to our map which keeps track of eventType: child/value events
1664
+ if ( ! Query . eventListenerMap . has ( eventType ) ) {
1665
+ Query . eventListenerMap . set ( eventType , [ ] ) ;
1666
+ }
1667
+ Query . eventListenerMap . get ( eventType ) . push ( listener ) ; // We need to keep track of the listeners to fully remove them when calling off
1668
+ } catch ( ex ) {
1669
+ console . error ( "Error in firebase.on: " + ex ) ;
1670
+ } finally {
1671
+ return callback ;
1672
+ }
1678
1673
}
1679
1674
1680
1675
once ( eventType : string ) : Promise < DataSnapshot > {
@@ -2116,6 +2111,9 @@ firebase.transaction = (path: string, transactionUpdate: (currentState) => any,
2116
2111
} ) ;
2117
2112
} ;
2118
2113
2114
+ function nativeRefToWebRef ( ref : com . google . firebase . database . DatabaseReference ) {
2115
+
2116
+ }
2119
2117
// Converts Android DataSnapshot into Web Datasnapshot
2120
2118
function nativeSnapshotToWebSnapshot ( snapshot : com . google . firebase . database . DataSnapshot ) : DataSnapshot {
2121
2119
function forEach ( action : ( datasnapshot : DataSnapshot ) => any ) : boolean {
@@ -2131,7 +2129,7 @@ function nativeSnapshotToWebSnapshot(snapshot: com.google.firebase.database.Data
2131
2129
2132
2130
return {
2133
2131
key : snapshot . getKey ( ) ,
2134
- ref : snapshot . getRef ( ) ,
2132
+ // ref: snapshot.getRef(), TODO: Convert native ref to webRef
2135
2133
child : ( path : string ) => nativeSnapshotToWebSnapshot ( snapshot . child ( path ) ) ,
2136
2134
exists : ( ) => snapshot . exists ( ) ,
2137
2135
forEach : ( func : ( datasnapshot ) => any ) => forEach ( func ) ,
0 commit comments