如何使用angularFireCollection更新以前不存在的项目

时间:2013-10-06 13:58:29

标签: firebase angularfire

我有text这个父节点,如果media发生更改,我也想在父节点中添加text

{
 parent: {
  text: 'this is content'
 }
}

来自第三方回调的media值。如何将其传递给update()?我试过{media: callbackVal}但没有工作。

$scope.parent = angularFireCollection(firebaseRef.child('parent'));
$scope.parent.update(What_to_do_here, function(error){
 //something...
});

更新

也许我的问题不够明确。

在Firebase JS中,我们可以执行此操作来更新媒体或将媒体插入节点。

new Firebase(firebaseRef).update({ media: 'value'} );

如何在`angularFireCollection?

中执行此操作

1 个答案:

答案 0 :(得分:0)

查看带注释的AngularFire来源:http://angularfire.com/src/angularFire.html#section-38

看起来AngularFireCollection.update()需要一个键/项和一个回调函数。因此,您需要直接在AngularFireCollection中编辑要更新的条目(例如$scope.parent.getByName('media').value = 'alligator scrimshaw'),然后调用$scope.parent.update($scope.parent.getByName('media'), function(err) { ... })

注意:一个相当令人困惑的事情(可能是我误解)是似乎没有办法通过id向AngularFireCollection添加数据。因此,如果您的Firebase中尚不存在media,则$scope.parent.getByName('media')将返回undefined。因此,如果您不需要显式同步,并且隐式同步很好,我会使用AngularFire对象而不是AngularFireCollection。