我要做的基本上是替换用户下我凭据路径上的用户名,但是当我运行以下代码时,即使我明确地只是重写一个属性,它也会擦除凭据路径(对象)上的所有其他数据。我如何在AngularFire中更新对象,我知道我可以使用.set
不用AngularFire来完成它,但是我想返回一个Promise。这是我的代码:
editCredentials: function(uid, credItem, newData){
var ref = new Firebase('https://myapp.firebaseio.com/users/' + uid + '/credentials/');
var editCred = $firebaseObject(ref);
editCred[credItem] = newData;
editCred.$save(ref)
.then(function(data){
console.log(data)
})
.catch(function(error){
console.log(error)
})
}
最佳答案
AngularFire建立在Firebase JavaScript SDK之上。这意味着您不必将AngularFire用于使用常规JavaScript SDK进行的操作。
在这种情况下:
editCredentials: function(uid, credItem, newData){
var ref = new Firebase('https://myapp.firebaseio.com/users/' + uid + '/credentials/');
ref.update({ 'credItem': newData });
}