使用AngularFire在firebase中创建关系

使用AngularFire在firebase中创建关系,firebase,Firebase,我试图创建整洁的关系,但发现在firebase中已经创建的数组中添加子元素相当困难。我希望能够轻松地基于另一个数组的$id在子属性中创建数组 我正在寻找的结构是这样的 foo -Jy7ULZGVepTGe2Dp-9Q - name: Manages - foobar - Jy7hbJP1aWWlOSfeXJC : true // this is johns $id - Jy7UQms89ycibPxDhMp : true // this is ja

我试图创建整洁的关系,但发现在firebase中已经创建的数组中添加子元素相当困难。我希望能够轻松地基于另一个数组的
$id
在子属性中创建数组

我正在寻找的结构是这样的

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不是一个函数


我不太确定这是否是最好的理由,或者是否有更好的实践来创建“扁平”火基结构。

AngularFire是建在顶部的。您应该只对绑定到UI的对象使用AngularFire构造。对于其他内容,请使用常规的Firebase JavaScript SDK

我猜
GetObjects.getParentChildren('foo','foobar')
返回一个。这是Firebase的JavaScript SDK中的一个对象,因此不能对其调用AngularFire方法

相反,您可以从Firebase JavaScript SDK调用方法,例如:和:

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

newFoo.set(true);