How to use factory, Angular, with firebase?

0

Good afternoon, Guys, I'm trying to create a factory with firebase, to bring the data of it.

My controller:

app.controller('ListagemCtrl', function($scope, $location, $firebaseObject, $timeout, appFactory){

$scope.filmesCadastrados = [];

appFactory.pegaFilmes().on('value', function (snapshot) {
    for(var id in snapshot.val()){
        var filme = snapshot.val()[id];
        $scope.filmesCadastrados.push({
            titulo: filme.titulo,
            diretor: filme.diretor,
            categoria: filme.categoria,
            duracao: filme.duracao
        });
    }
});
});

And this is my factory:

app.factory('appFactory', function($scope, $firebaseObject){

var _pegaFilmes = function() {
    return firebase.database().ref('filmes/').on('value', function (snapshot) {
                for(var id in snapshot.val()){
                    var filme = snapshot.val()[id];
                    //console.log(filme);
                    $scope.filmesCadastrados.push({
                        titulo: filme.titulo,
                        diretor: filme.diretor,
                        categoria: filme.categoria,
                        duracao: filme.duracao
                    });

                }
            });
}

return {
    pegaFilmes: _pegaFilmes
};

});

This warning appears in the console:

  

angular.js: 13708 Error: [$ injector: unpr] link $ injector / unpr? p0 = copeProvider % 20% 3C-% 20% 24scope% 20% 3C-% 20appFactory

    
asked by anonymous 30.11.2016 / 20:11

1 answer

1

Then you take a look at the dock link

  app.factory('Filmes', function($firebaseArray){
      var chatRef = firebase.database().ref('/filmes');

     return $firebaseArray(chatRef);
  });

  app.controller('FilmeCtrl', function($scope, Filmes){
    $scope.filmes =  [];

    // Function auto executada
    (function () {
      console.log(Filmes);
      Filmes.$loaded(success, error);

      function success(data) {
        $scope.filmes =  data;
        console.log('MIUUII', data);
      }

      function error(errorMessage) {
        console.log(errorMessage);
      }
    })();
  });
    
01.12.2016 / 21:03