@@ -72,6 +72,30 @@ firebase.toHashMap = function(obj) {
7272 return node ;
7373} ;
7474
75+ firebase . toValue = function ( val ) {
76+ var returnVal = null ;
77+ if ( val !== null ) {
78+ switch ( typeof val ) {
79+ case 'object' :
80+ returnVal = firebase . toHashMap ( val ) ;
81+ break ;
82+ case 'boolean' :
83+ returnVal = java . lang . Boolean . valueOf ( String ( val ) ) ;
84+ break ;
85+ case 'number' :
86+ if ( Number ( val ) === val && val % 1 === 0 )
87+ returnVal = java . lang . Long . valueOf ( String ( val ) ) ;
88+ else
89+ returnVal = java . lang . Double . valueOf ( String ( val ) ) ;
90+ break ;
91+ case 'string' :
92+ returnVal = String ( val ) ;
93+ break ;
94+ }
95+ }
96+ return returnVal ;
97+ } ;
98+
7599firebase . toJsObject = function ( javaObj ) {
76100 if ( javaObj === null || typeof javaObj != "object" ) {
77101 return javaObj ;
@@ -879,7 +903,7 @@ firebase.push = function (path, val) {
879903 return new Promise ( function ( resolve , reject ) {
880904 try {
881905 var pushInstance = firebase . instance . child ( path ) . push ( ) ;
882- pushInstance . setValue ( firebase . toHashMap ( val ) ) ;
906+ pushInstance . setValue ( firebase . toValue ( val ) ) ;
883907 resolve ( {
884908 key : pushInstance . getKey ( )
885909 } ) ;
@@ -893,7 +917,7 @@ firebase.push = function (path, val) {
893917firebase . setValue = function ( path , val ) {
894918 return new Promise ( function ( resolve , reject ) {
895919 try {
896- firebase . instance . child ( path ) . setValue ( firebase . toHashMap ( val ) ) ;
920+ firebase . instance . child ( path ) . setValue ( firebase . toValue ( val ) ) ;
897921 resolve ( ) ;
898922 } catch ( ex ) {
899923 console . log ( "Error in firebase.setValue: " + ex ) ;
0 commit comments