@@ -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