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

Commit a42f805

Browse files
Merge pull request #148 from samuelagm/agm-firebase
added a toValue function that handles primitive types on android
2 parents 6ea853c + 7113473 commit a42f805

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;
@@ -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) {
893917
firebase.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

Comments
 (0)