我是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();
};
答案 0 :(得分:0)
您正在寻找$update
:
syncProfile.$update({ "email": "peter@peterpan.com" });
请注意,$update
仅适用于$firebase
,而不适用于您从$asObject
返回的FirebaseObject。原因是$asObject
实际上是指直接绑定到角度范围的对象。您不应该在自己的代码中对它进行更新。
顺便说一句:如果你的其余代码以类似的方式使用AngularFire,你可以考虑直接删除AngularFire并使用Firebase's JavaScript SDK。它使用起来要简单得多,因为它不需要在Firebase和Angular的工作方式之间进行调解。