@@ -92,7 +92,32 @@ firebase.init = function (arg) {
9292 instance = new Firebase ( arg . url ) ;
9393 resolve ( ) ;
9494 } catch ( ex ) {
95- console . log ( "Error in firebase.store: " + ex ) ;
95+ console . log ( "Error in firebase.init: " + ex ) ;
96+ reject ( ex ) ;
97+ }
98+ } ) ;
99+ } ;
100+
101+ // TODO
102+ firebase . login = function ( arg ) {
103+ return new Promise ( function ( resolve , reject ) {
104+ try {
105+
106+ var authorizer = new com . firebase . client . Firebase . AuthResultHandler ( {
107+ onAuthenticated : function ( authData ) {
108+ resolve ( authData ) ;
109+ } ,
110+ onAuthenticationError : function ( firebaseError ) {
111+ reject ( {
112+ error : firebaseError ,
113+ errorMessage : firebaseError . message
114+ } ) ;
115+ }
116+ } ) ;
117+
118+ instance . authAnonymously ( authorizer ) ;
119+ } catch ( ex ) {
120+ console . log ( "Error in firebase.login: " + ex ) ;
96121 reject ( ex ) ;
97122 }
98123 } ) ;
@@ -101,22 +126,22 @@ firebase.init = function (arg) {
101126firebase . addChildEventListener = function ( updateCallback , path ) {
102127 return new Promise ( function ( resolve , reject ) {
103128 try {
104- instance . child ( path ) . addChildEventListener ( new com . firebase . client . ChildEventListener ( {
105- onChildAdded : function ( snapshot , previousChildKey ) {
106- updateCallback ( firebase . getCallbackData ( 'ChildAdded' , snapshot ) ) ;
107- } ,
108- onChildRemoved : function ( snapshot ) {
109- updateCallback ( firebase . getCallbackData ( 'ChildRemoved' , snapshot ) ) ;
110- } ,
111- onChildChanged : function ( snapshot , previousChildKey ) {
112- updateCallback ( firebase . getCallbackData ( 'ChildChanged' , snapshot ) ) ;
113- } ,
114- onChildMoved : function ( snapshot , previousChildKey ) {
115- updateCallback ( firebase . getCallbackData ( 'ChildMoved' , snapshot ) ) ;
116- }
117- } )
118- ) ;
119- resolve ( ) ;
129+ var listener = new com . firebase . client . ChildEventListener ( {
130+ onChildAdded : function ( snapshot , previousChildKey ) {
131+ updateCallback ( firebase . getCallbackData ( 'ChildAdded' , snapshot ) ) ;
132+ } ,
133+ onChildRemoved : function ( snapshot ) {
134+ updateCallback ( firebase . getCallbackData ( 'ChildRemoved' , snapshot ) ) ;
135+ } ,
136+ onChildChanged : function ( snapshot , previousChildKey ) {
137+ updateCallback ( firebase . getCallbackData ( 'ChildChanged' , snapshot ) ) ;
138+ } ,
139+ onChildMoved : function ( snapshot , previousChildKey ) {
140+ updateCallback ( firebase . getCallbackData ( 'ChildMoved' , snapshot ) ) ;
141+ }
142+ } ) ;
143+ instance . child ( path ) . addChildEventListener ( listener ) ;
144+ resolve ( listener ) ;
120145 } catch ( ex ) {
121146 console . log ( "Error in firebase.addChildEventListener: " + ex ) ;
122147 reject ( ex ) ;
@@ -127,22 +152,34 @@ firebase.addChildEventListener = function (updateCallback, path) {
127152firebase . addValueEventListener = function ( updateCallback , path ) {
128153 return new Promise ( function ( resolve , reject ) {
129154 try {
130- var ValueEventListener = com . firebase . client . ValueEventListener ;
131- instance . child ( path ) . addValueEventListener ( new ValueEventListener ( {
132- onDataChange : function ( snapshot ) {
133- updateCallback ( firebase . getCallbackData ( 'ValueChanged' , snapshot ) ) ;
134- } ,
135- onCancelled : function ( firebaseError ) {
136- updateCallback ( {
137- error : firebaseError ,
138- errorMessage : firebaseError . message
139- } ) ;
140- }
141- } )
142- ) ;
155+ var listener = new com . firebase . client . ValueEventListener ( {
156+ onDataChange : function ( snapshot ) {
157+ updateCallback ( firebase . getCallbackData ( 'ValueChanged' , snapshot ) ) ;
158+ } ,
159+ onCancelled : function ( firebaseError ) {
160+ updateCallback ( {
161+ error : firebaseError ,
162+ errorMessage : firebaseError . message
163+ } ) ;
164+ }
165+ } ) ;
166+ instance . child ( path ) . addValueEventListener ( listener ) ;
167+ resolve ( listener ) ;
168+ } catch ( ex ) {
169+ console . log ( "Error in firebase.addValueEventListener: " + ex ) ;
170+ reject ( ex ) ;
171+ }
172+ } ) ;
173+ } ;
174+
175+ firebase . removeEventListener = function ( listener , path ) {
176+ return new Promise ( function ( resolve , reject ) {
177+ try {
178+ console . log ( "Removing at path " + path + ": " + listener ) ;
179+ instance . child ( path ) . removeEventListener ( listener ) ;
143180 resolve ( ) ;
144181 } catch ( ex ) {
145- console . log ( "Error in firebase.store : " + ex ) ;
182+ console . log ( "Error in firebase.removeEventListener : " + ex ) ;
146183 reject ( ex ) ;
147184 }
148185 } ) ;
0 commit comments