我正在使用 firebase 和 angular 进行测验。在测验结束时,我想使用以下代码将新属性保存到用户对象:
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);
});
}
它有效,但它也覆盖了用户对象的所有属性。因此,该对象曾经像姓名、用户名、电子邮件、密码等一样保存,但是当我推送最高分时,它成为该对象的唯一属性。为什么?
最佳答案
你为什么在这里使用 $firebaseObject
?这仅在您将其三向绑定(bind)到 Angular View 时才有用。如果您使用的是常规 JavaScript 代码,只需坚持使用 Firebase 的常规 JavaScript SDK。
在这种情况下,只需执行:
ref.update({ topscore: User.totalCorrect });
关于angularjs - 保存新属性会覆盖 firebase 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29834986/