我要做的基本上是替换用户下我凭据路径上的用户名,但是当我运行以下代码时,即使我明确地只是重写一个属性,它也会擦除凭据路径(对象)上的所有其他数据。我如何在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 });
}

10-07 13:36