【发布时间】:2015-01-31 16:26:29
【问题描述】:
我正在制作一个允许用户种植一棵树的网络应用程序。当用户给树施肥时,“肥料”属性应该增加。但是,该应用程序不断给我错误,因为它已确定“肥料”未定义。
更新分数函数如下:
function updateScore(){
if (usr!=null){
var tree = $firebase(new Firebase("https://myapp.firebaseio.com/trees/"+usr.treeid));
var usrTree = tree.$asObject();
var data = null;
if (typeof usrTree.data !== 'undefined'){
data = usrTree.data;
}
console.log(usrTree);
console.log(usrTree.$id);
console.log(usrTree.uid);
console.log(usrTree.fertilizer);
tree.$update({fertilizer: usrTree.fertilizer+1});
}
}
}
所以控制台给出了这些结果:
e {$$conf: Object, $id: "-JcDm0UlYVGFfFAX0GSf", $priority: null, $save: function, $remove: function…}
$$conf: Object
$id: "-JcDm0UlYVGFfFAX0GSf"
$priority: null
fertilizer: 0
level: 0
pesticide: 0
sunshine: 0
uid: "simplelogin:6"
water: 0
__proto__: Object
-JcDm0UlYVGFfFAX0GSf
undefined
undefined
我相信第一个是usrTree 对象,第二个是$id,第三个和第四个应该是uid 和fertilizer,但未定义。但是,在 usrTree 对象中,uid 和 fertilizer 确实按照定义显示并且它们存在于 firebase forge 中:
我在这里做错了什么?我应该怎么做才能更新数据??
【问题讨论】: