如何使用Firebase / angularFire(角度应用程序)访问单个记录

时间:2014-06-04 16:45:59

标签: firebase angularfire

很抱歉,如果这是一个大规模的菜鸟问题,但我是Firebase的新手(虽然到目前为止看起来很棒)。

我有一个从Angular应用程序中保存到Firebase的书籍列表。我可以使用以下代码在屏幕上显示这些:

var db = new Firebase("https://xxxxx.xxxxx.com");
$scope.books = $firebase(db);

然后我循环阅读书籍并将它们吐出一个列表。

当我点击每本书时,我希望它能够让我查看显示书籍信息。在Firebase之前我通过以下方式执行此操作:

.controller('BookDetailCtrl', function($scope, $stateParams, Books) {
  $scope.book = Books.get($stateParams.bookId);
})

然后将信息吐出屏幕。

我如何在Firebase中执行相同操作,因为图书没有ID,但是随机字符串作为键。

我查看了文档,但要么错过了,要么我正在以错误的方式看事情......

任何帮助都会很棒,谢谢

添加firebase forge的屏幕截图 - 我需要访问一本单独的书籍,如何获取firebase用于密钥/ id的这些随机ID?

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用$ firebase:

$scope.book = $scope.books.$child( bookId );

但它并非绝对必要,因为AngularFire的主要目的是自动化许多列表管理方面。如果我们想要的只是一本特定的书,您可以轻松地直接访问Firebase API:

var fb = new Firebase('https://kato-sandbox-books.firebaseio-demo.com');
var bookId = 'book1';
$scope.book = null;
fb.child(bookId).on('value', function(snap) {
   $timeout(function() { $scope.book === snap.val(); });
});

See it in action