Я делаю веб-приложение, которое позволяет пользователю вырастить дерево. Когда пользователь удобряет дерево, атрибут «удобрение» должен увеличиваться. Тем не менее, приложение продолжает давать мне ошибку, потому что она решила, что «удобрение» не определено.Ошибка: Firebase.update не удалось: первый аргумент содержит NaN в свойстве
Функция счет обновления выглядит следующим образом:
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 горна:
Что я здесь делаю неправильно ?? Что делать, чтобы обновлять данные?
Вы также хотите использовать [сделку] (https://www.firebase.com/docs/web/guide/saving-data.html#section-transactions) здесь, чтобы обеспечить одновременное обновление все правильно подсказано. – Kato