Javascript firebase:angularfire 0.8.0升级保存记录中的参考名称

Javascript firebase:angularfire 0.8.0升级保存记录中的参考名称,javascript,angularjs,firebase,angularfire,Javascript,Angularjs,Firebase,Angularfire,我使用angularfire 0.6.0并升级到0.8.0 在我将firebase记录Id保存到记录之前,如下所示: $scope.getOpenPosten.$add({ uID: "bla" }).then(function(ref) { $scope.RecordID = ref.name(); $scope.getOpenPosten[id].

我使用angularfire 0.6.0并升级到0.8.0 在我将firebase记录Id保存到记录之前,如下所示:

  $scope.getOpenPosten.$add({
               uID: "bla"
                }).then(function(ref) {
                    $scope.RecordID = ref.name();
                    $scope.getOpenPosten[id].oID = id;
                    $scope.getOpenPosten.$save(id);
                });
但在0.8.0中,我得到了一个错误: TypeError:无法设置未定义的属性“oID”


有人有主意吗?

从0.6到0.8进行了大幅度升级

在0.6中,当调用
$firebase(ref)
绑定时,数据立即同步。现在,在0.8中,在调用
$asObject()
$asArray()
方法之前,数据不会同步

您可以在
$firebase(ref)
绑定上调用
$set()
$update()
$push()
,将数据保存到您的firebase,而无需同步任何数据。如果要同步和显示数据,需要调用上述
$asObject()
$asArray()

在您的情况下,看起来您希望添加到项目列表中。在这种情况下,
$asArray()
将最有效:

$scope.openPostens = $firebase(yourRef).$asArray();
$scope.openPostens.$add({ uid: 'blah' }).then(function(ref) {
   ref.update({ oID: ref.name() });
});
另外,看起来您希望保存由推送到对象创建的唯一id。在AngularFire中,你不必这么做


您可能需要使用
$asObject()
。看见
var obj = $firebase(ref).$asObject();
obj.foo = "bar";
obj.$save().then(function(ref) {
   ref.name() === obj.$id; // true
});