angularFire $ asObject没有推动

时间:2015-02-12 07:26:22

标签: firebase angularfire

我是firebase的新手,并试图在angulerFire文档中使用$ asObject。基本上,我的简介如下。我使用$ asObject来更新电子邮件。但是当我使用$ save()时,它只用电子邮件替换整个配置文件,而不是将其推送到列表的末尾,即它的工作方式与set()相似,而不是push()。它是如何工作的?我怎么才推?

对象

{profiles:
 {peterpan:
 {name:"Peter Trudy", dob:"7th March"}
 }
}

我的点击功能:

 $scope.angularObject = function(){
            var syncProfile = $firebase(ref.child("profiles").child("peterpan"));
            var profileObject = syncProfile.$asObject();
            profileObject.email= "peter@peterpan.com";
            profileObject.$save();
         };

1 个答案:

答案 0 :(得分:0)

您正在寻找$update

syncProfile.$update({ "email": "peter@peterpan.com" });

请注意,$update仅适用于$firebase,而不适用于您从$asObject返回的FirebaseObject。原因是$asObject实际上是指直接绑定到角度范围的对象。您不应该在自己的代码中对它进行更新。

顺便说一句:如果你的其余代码以类似的方式使用AngularFire,你可以考虑直接删除AngularFire并使用Firebase's JavaScript SDK。它使用起来要简单得多,因为它不需要在Firebase和Angular的工作方式之间进行调解。