一尘不染

保存新属性将覆盖Firebase对象

angularjs

我正在使用Firebase和angular进行测验。在测验的最后,我想使用以下代码将新属性保存到users对象:

function saveTopscore() {
    var ref = new Firebase(CONSTANTS.FIREBASE_URL + 'users/' + User.user.$id + '/');
    var userObject = $firebaseObject(ref);
    userObject.topscore = User.totalCorrect;
    userObject.$save().then(function(ref) {
        console.log("worked");
    }, function(error) {
        console.log(error);
    });
}

它可以工作,但也可以覆盖用户对象的所有属性。因此,该对象曾经像名称,用户名,电子邮件,密码等一样保存,但是当我按下topscore时,它成为该对象的唯一属性。为什么?


阅读 202

收藏
2020-07-04

共1个答案

一尘不染

你为什么在这里使用$firebaseObject?仅在将其三向绑定到Angular视图时才有用。如果您使用的是常规JavaScript代码,则只需坚持使用Firebase的常规JavaScript
SDK。

在这种情况下,请执行以下操作:

ref.update({ topscore: User.totalCorrect });
2020-07-04