使用AngularFire将数据添加到现有Firebase数据

时间:2014-02-17 14:11:09

标签: angularjs firebase angularfire

我正在尝试使用AngularFire向Firebase中的现有数据添加数据我的数据目前看起来像这样,非常简单的客户列表:

clients
--Firebase UID
----client: Client1
--Firebase UID
----client: Client2
--Firebase UID
----client: Client3

但是我希望能够在团队等客户端部分添加一个团队成员列表和一些细节。例如

--Firebase UID
----client: Client1
------team: {Bob: {email: address, position: developer}, Peter: {email: address, position: developer}}
--Firebase UID
----client: Client2
--Firebase UID
----client: Client3 ------team: {Bob: {email: address, position: developer}}

这是我目前的代码:

var firebaseURL = 'https://<myfirebase>.firebaseio.com/clients';
$scope.clients.team = {Bob: {email: address, position: developer}, Peter: {email: address, position: developer}};
$scope.clients.$save(Client1);

我不断得到的是以下错误:

错误:Firebase.set失败:第一个参数包含undefined     在错误(本机)

我在这里查看了AngularFire文档https://www.firebase.com/docs/angular/reference.html#save-key,并且相信我已经正确地遵循了它。

1 个答案:

答案 0 :(得分:1)

请注意,传递给$save的参数应该是一个字符串,指向要保存的键名。

其次,当您在范围对象上定义新属性时,它们需要位于正确的路径上(在保存团队时,您缺少客户端的UID)。

第三,如果任何数据片段解析为undefined,则不会保存数据。确保团队下的所有内容都是具有值的变量,或者是字符串。

var firebaseURL = 'https://<myfirebase>.firebaseio.com/clients';
$scope.clients = $firebase(firebaseURL);
...
$scope.clients[clientUid].team = {
  "Bob": {email: "some address", position: "developer"}
};
$scope.client.$save(clientUid);