Как получить доступ к отдельным записям с FireBase / Angularfire (Angular App)

StackOverflow https://stackoverflow.com//questions/24043086

  •  21-12-2019
  •  | 
  •  

Вопрос

Извините, если это массивно нуб вопрос, но я новичок в Firebase (хотя это кажется потрясающе).

У меня есть список книг, сохраненных в Firebase из-за углового приложения. Я могу отобразить их на экране Fine, используя следующий код:

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, так как книги не имеют идентификатора, но имеют случайные строки в качестве клавиш.

Я просматривал документы, но либо пропустил это, либо я смотрю на вещи неправильно ...

Любая помощь была бы здоровой, спасибо

Добавление скриншота Firebase Forge - мне нужно получить доступ к отдельной книге, как я могу получить эти случайные идентификаторы Firebase Firebase для Keys / ID?

Введите описание изображения здесь

Это было полезно?

Решение

Вы можете использовать $ firebase для этого:

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

Но он не является строго необходимым, так как основной целью ангулярнойфе - автоматизировать много аспектов управления списком.Вы можете легко пойти прямо на API Firebase, если все, что мы хотим, является конкретной книгой:

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(); });
});
.

Смотрите в действии

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top