如何使用AngularJS获取刚刚添加到Firebase的新列表项的UID?

时间:2014-02-24 13:57:03

标签: angularjs firebase angularfire

我正在将新子项添加到Firebase列表中,并自动创建唯一ID。我需要一些方法来获取已创建的ID,以便我可以立即将URL位置路径更改为包含该ID的路由。以下是我创建列表项的方法:

.controller('NewTestCtrl', ['$scope', 'syncData', '$location', function($scope, syncData, $location) {
  $scope.newTitle = null;
  $scope.tests = syncData('tests');
  $scope.createTest = function() {
     var newDate = new Date();
     if( $scope.newTitle ) {
        $scope.tests.$add({
           title: $scope.newTitle,
           createdDate: newDate,
           modified: newDate,
           user: $scope.auth.user.uid
        });

        $location.path("/test/" + [FIREBASE UNIQUE ID] + "/1");
     }
  };
}])

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

angularFire $ add方法返回一个promise,当解析时,它将包含对新推送值的Firebase引用。使用该值,您可以获得UID。

$scope.tests.$add({
  ...your object....
})
  .then(function(ref) { 
    $location.path("/test/"+ref.name()); 
  });