【问题标题】:How do I get the UID of the new list item I just added to Firebase using AngularJS?如何获取我刚刚使用 AngularJS 添加到 Firebase 的新列表项的 UID?
【发布时间】:2014-02-24 13:57:02
【问题描述】:

我正在向 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");
     }
  };
}])

感谢您的帮助!

【问题讨论】:

    标签: angularjs firebase angularfire


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!我还不能尝试,但这看起来正是我需要的。
    • 有效!再次感谢。这方面的文档在哪里?我发现某些 firebase 功能的文档有点轻/不存在/很难找到。
    • 很高兴听到这个消息。我一直在探索 github 上的 angularfire 代码 + firebase 文档本身。
    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 2017-08-07
    • 2015-07-23
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多