Como acessar registros individuais com Firebase/angularFire (aplicativo angular)

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

  •  21-12-2019
  •  | 
  •  

Pergunta

Desculpe se esta é uma pergunta muito novata, mas sou novo no Firebase (embora pareça incrível até agora).

Tenho uma lista de livros salvos no Firebase em um aplicativo Angular.Posso exibi-los perfeitamente na tela usando o seguinte código:

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

Então eu folheio os livros e os coloco em uma lista.

Quando clico em cada livro que desejo, ele me leva a uma visualização que exibe as informações do livro.Antes do Firebase eu fazia isso:

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

e depois cuspindo as informações na tela.

Como posso fazer o mesmo no Firebase, já que os livros não têm IDs, mas têm strings aleatórias como chaves.

Examinei os documentos, mas não percebi ou estou vendo as coisas da maneira errada ...

Qualquer ajuda seria ótima, obrigado

Adicionando captura de tela do Firebase Forge - preciso acessar um livro individual. Como posso obter esses IDs aleatórios que o Firebase usa para chaves/IDs?

enter image description here

Foi útil?

Solução

Você pode utilizar $firebase para isso:

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

Mas não é estritamente necessário, pois o objetivo principal do AngularFire é automatizar muitos aspectos do gerenciamento de listas.Você poderia facilmente ir direto para a API do Firebase se tudo o que quisermos for um livro específico:

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

Veja-o em ação

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top