Skip to content
This repository was archived by the owner on Apr 4, 2023. It is now read-only.

Commit 7113473

Browse files
committed
- added a toValue function that handles primitive types passed to setValue
1 parent e43c12d commit 7113473

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

firebase.android.js

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
7599
firebase.toJsObject = function(javaObj) {
76100
if (javaObj === null || typeof javaObj != "object") {
77101
return javaObj;
@@ -875,7 +899,7 @@ firebase.push = function (path, val) {
875899
return new Promise(function (resolve, reject) {
876900
try {
877901
var pushInstance = firebase.instance.child(path).push();
878-
pushInstance.setValue(firebase.toHashMap(val));
902+
pushInstance.setValue(firebase.toValue(val));
879903
resolve({
880904
key: pushInstance.getKey()
881905
});
@@ -889,7 +913,7 @@ firebase.push = function (path, val) {
889913
firebase.setValue = function (path, val) {
890914
return new Promise(function (resolve, reject) {
891915
try {
892-
firebase.instance.child(path).setValue(firebase.toHashMap(val));
916+
firebase.instance.child(path).setValue(firebase.toValue(val));
893917
resolve();
894918
} catch (ex) {
895919
console.log("Error in firebase.setValue: " + ex);

0 commit comments

Comments
 (0)