2015-09-01 2 views
0

Я пытаюсь создать опрятные отношения, но мне сложно добавить ребенка на уже созданном массиве в firebase. Я хочу, чтобы легко было создавать массивы в дочернем свойстве на основе $id другого массива.Создание связей в firebase с помощью AngularFire

структура я ищу, как и

foo 
    -Jy7ULZGVepTGe2Dp-9Q 
    - name: Manages 
    - foobar 
     - Jy7hbJP1aWWlOSfeXJC : true // this is johns $id 
     - Jy7UQms89ycibPxDhMp : true // this is jacks $id 

foobar 
    - Jy7hbJP1aWWlOSfeXJC 
    - name : john 
    - Jy7UQms89ycibPxDhMp 
    - name : jack 

Что я сейчас делаю это

var foobar = GetObjects.getParentUrl('foobar'); // returns a $firebaseObject 

    branches.name = vm.entityChild.name; // This add works 
    branches.$add(branches) 
     .then(function (data) { 
      console.log('success: ' + data) 
      var id = data.key(); // returns the id 
      var foo = GetObjects.getParentChildren('foo','foobar'); 
      var newFoo = foo.child(id); 

      newFoo.$save(true); 
     }) 

Я получаю ошибку $save is not a function

Я не слишком уверен, если это лучшее, что нужно сделать, или если есть более эффективная практика создания «сплющенной» структуры огневой базы.

ответ

2

AngularFire построен поверх Firebase's JavaScript SDK. Вы должны использовать конструкции AngularFire только для вещей, которые вы привязываете к пользовательскому интерфейсу. Для чего-либо еще используйте стандартный SDK Firebase JavaScript.

Я предполагаю, что GetObjects.getParentChildren('foo','foobar') возвращает Firebase object. Это объект из SDK от Firebase, поэтому вы не можете использовать методы AngularFire.

Вместо этого вы вызываете методы из Firebase JavaScript SDK, такие как: child() и https://www.firebase.com/docs/web/api/firebase/set.html:

var foo = GetObjects.getParentChildren('foo','foobar'); 
var newFoo = foo.child(id); 

newFoo.set(true); 
Смежные вопросы