2015-09-01 4 views
0

J'essaie de créer des relations soignées mais je trouve qu'il est plutôt difficile d'ajouter un enfant sur un tableau déjà créé dans Firebase. Je veux facilement pouvoir créer des tableaux dans une propriété enfant basée sur le $id d'un autre tableau.Création de relations dans Firebase en utilisant AngularFire

la structure je cherche est comme si

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 

Ce que je fais actuellement est

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); 
     }) 

Je reçois l'erreur $save is not a function

Je ne suis pas sûr si cela est la meilleure façon de s'y prendre ou s'il y a une meilleure pratique pour créer une structure de base de feu "aplatie".

Répondre

2

AngularFire est construit sur Firebase's JavaScript SDK. Vous devez uniquement utiliser des constructions AngularFire pour les éléments que vous liez à l'interface utilisateur. Pour toute autre utilisation, utilisez le SDK JavaScript Firebase standard. Je suppose que GetObjects.getParentChildren('foo','foobar') renvoie Firebase object. C'est un objet du SDK JavaScript de Firebase, vous ne pouvez donc pas appeler les méthodes AngularFire.

Au lieu de cela, vous appelez les méthodes du SDK JavaScript Firebase, tels que: child() et https://www.firebase.com/docs/web/api/firebase/set.html:

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

newFoo.set(true);