2014-02-17 5 views
0

Я пытаюсь добавить данные к существующим данным в Firebase с помощью AngularFire моих данных в настоящее время выглядит, как это, очень простой список клиентов:Добавление данных в существующих Firebase данных с использованием AngularFire

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 не удалось: Первый аргумент содержит неопределенное при ошибке (родной)

Я посмотрел на AngularFire do здесь https://www.firebase.com/docs/angular/reference.html#save-key и считаю, что я следовал за ним правильно.

ответ

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); 
+0

Но как я могу получить доступ к клиенту? Это еще один камень преткновения. Я не могу получить идентификатор каждого объекта. Как я могу это получить? –

+1

Это зависит от того, как вы их добавляете. Если вы используете $ add, вы можете получить ключевое имя недавно добавленных данных через 'ref.name()', где ref передается при разрешении обещания, возвращаемого '$ add'. – Anant

Смежные вопросы