使用 AngularFire 在 firebase 中创建关系
Creating relationships in firebase using AngularFire
我正在尝试创建整洁的关系,但我发现很难在 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 is not a function
我不太确定这是否是最好的理由,或者是否有更好的做法来创建 "flattened" firebase 结构。
AngularFire 建立在 Firebase's JavaScript SDK 之上。你应该只对绑定到 UI 的东西使用 AngularFire 构造。对于其他任何事情,请使用常规的 Firebase JavaScript SDK。
我猜 GetObjects.getParentChildren('foo','foobar')
returns 一个 Firebase
object。这是来自 Firebase JavaScript SDK 的一个对象,因此您不能在其上调用 AngularFire 方法。
相反,您可以从 Firebase JavaScript SDK 调用方法,例如:child()
and https://www.firebase.com/docs/web/api/firebase/set.html:
var foo = GetObjects.getParentChildren('foo','foobar');
var newFoo = foo.child(id);
newFoo.set(true);
我正在尝试创建整洁的关系,但我发现很难在 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 is not a function
我不太确定这是否是最好的理由,或者是否有更好的做法来创建 "flattened" firebase 结构。
AngularFire 建立在 Firebase's JavaScript SDK 之上。你应该只对绑定到 UI 的东西使用 AngularFire 构造。对于其他任何事情,请使用常规的 Firebase JavaScript SDK。
我猜 GetObjects.getParentChildren('foo','foobar')
returns 一个 Firebase
object。这是来自 Firebase JavaScript SDK 的一个对象,因此您不能在其上调用 AngularFire 方法。
相反,您可以从 Firebase JavaScript SDK 调用方法,例如:child()
and https://www.firebase.com/docs/web/api/firebase/set.html:
var foo = GetObjects.getParentChildren('foo','foobar');
var newFoo = foo.child(id);
newFoo.set(true);