如何在不删除其他属性的情况下在AngularFire中的对象上保存探测器?

时间:2016-01-12 17:13:06

标签: javascript firebase angularfire

我想要做的只是替换用户下我的凭据路径上的用户名,但是当我运行以下代码时,它会删除凭据路径(对象)上的所有其他数据,即使我明确地只是重写了一个属性。如何更新AngularFire中的对象,我知道我可以在没有使用.set的AngularFire的情况下执行此操作,但我想返回一个承诺。这是我的代码:

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)
    })
  }

1 个答案:

答案 0 :(得分:-1)

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 });
}