Сохранить NormalizedCollection обратно в Firebase

Я создаю простое приложение для создания заметок с AngularJS и Firebase. Пользователь создает профиль, а затем сохраняет свои заметки на сервере.

У меня есть следующая структура данных в моей базе данных Firebase:

users
-- user1
---- name : "John Doe",
---- notes
------ note1 : true
notes
-- note1
---- author : "user1",
---- title : "Foo",
---- content : "Bar"

До сих пор мне удалось получить все заметки от текущего пользователя, вошедшего в систему, используя следующую угловую фабрику:

app.factory('noteList', ['fbutil', '$firebaseArray','FBURL', function(fbutil, $firebaseArray, FBURL) {
  var _getByUser = function(uid) {
    var fb = new Firebase(FBURL);
    var norm = new Firebase.util.NormalizedCollection( [fb.child('users/'+uid+'/notes'),'user'], [ fb.child('notes'), 'notes' ]);

    norm = norm.select(
     'notes.title',
     'notes.content',
    );
    return $firebaseArray(norm.ref());
  }

  return {
    getByUser: _getByUser
  }
}]);

Однако, если я пытаюсь добавить новую заметку с помощью следующей функции, в заметке сохраняется только заметка, но ничего не происходит с users/user1/notes:

$scope.addNote = function(newNote) {
  newNote.author = user.uid;
  if( newNote && !newNote.$id ) {
    console.log('Storing new note in DB');
    var d = new Date();
    newNote.created = d.getTime();
    $scope.notes.$add(newNote).then(function(ref) {
      var id = ref.key();
      console.log('New Note Created with ID:' + id + " for user: " + user.uid);
      var root = new Firebase(FBURL);
      root.child("/users/" + user.uid + "/notes/" + id).set(true);
    });
    $scope.newNote = $scope.blankNote;
  } else {
    var d = new Date();
    newNote.updated = d.getTime();
    $scope.notes.$save(newNote);
  }
};

Кажется, что обещание после $scope.notes.$ Add (newNote) не разрешено, поскольку консольный журнал "Новая заметка, созданная с помощью идентификатора..." не выводится.

Я застрял на этом пару часов и не могу понять, что случилось. Я довольно новичок в Angular и Firebase, и любая помощь, указывающая в правильном направлении, будет высоко оценена.

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

После нескольких часов поисков в Google я наконец смог решить проблему. В библиотеке Firebase.util возникла проблема, которая не позволила успешно выполнить обещание. Этот запрос на извлечение из репозитория Firebase.util решает проблему, и пока все работает нормально.

0 ответов

Другие вопросы по тегам