2017-02-23 75 views
1

我试图做一个简单的应用程序来学习如何获取Firebase并操作其中的数据。我想获取我的Firebase中存在的用户数组。 我做了所有事情,但是当我调用屏幕时它不显示,它保留在我的屏幕上,而我的控制台没有显示任何东西。谁能帮我?如何从Firebase获取数据?

这里是我的users.module

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users', [ 
 
      'ionic', 
 
      'hsAdmin.common' 
 
     ]) 
 
     .config(function($stateProvider) { 
 
     
 
     $stateProvider 
 
      .state('app.users', { 
 
       url: '/users', 
 
       views: { 
 
        'menuContent': { 
 
         templateUrl: 'templates/users/users.html', 
 
         controller: 'UsersCtrl as vm' 
 
        } 
 
       }, 
 
       resolve:{ 
 
        Users: function(UsersService) { 
 
         return UsersService.GetUsers().then(function(users){ 
 
          return users; 
 
         }).catch(function(error){ 
 
          console.log('Error when get users: ' + error); 
 
         }) 
 
        } 
 

 
       } 
 
      }); 
 
     }) 
 
})();

这里是我的users.controller

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users') 
 
     .controller('UsersCtrl', UsersCtrl); 
 

 
    UsersCtrl.$inject = ['$scope', '$state','Users']; 
 

 
    function UsersCtrl($scope, $state,Users){ 
 
     var vm = angular.extend(this, { 
 
    \t \t \t Users:Users, 
 
    \t \t \t ChangeState:ChangeState 
 
     }); 
 

 
     function ChangeState(state){ 
 
      $state.go(state); 
 
     } 
 

 
    }  
 
})();

这里是我的users.service

(function(){ 
 
    'use strict'; 
 

 
    angular 
 
     .module('hsAdmin.users') 
 
     .factory('UsersService', UsersService); 
 

 
    UsersService.$inject = ['fb', '$firebaseArray', '$firebaseObject','$q','$rootScope']; 
 

 
    function UsersService(fb, $firebaseArray, $firebaseObject,$q,$rootScope){ 
 
     var service = { 
 
      GetUsers:GetUsers 
 
     }; 
 
     return service; 
 

 

 
     function GetUsers(){ 
 
      var query = fb.child('/users'); 
 
      return $firebaseArray(query).$loaded(); 
 
     } 
 

 
     function GetUserById(id){ 
 
      var query = fb.child('/users/' + id); 
 
      return $firebaseObject(query).$loaded(); 
 
     } 
 
    } 
 
})();

有谁可以帮我吗?

+0

尝试使用angularfire https://github.com/firebase/angularfire – lesimoes

+0

我已经包含在我的项目,但是当我打电话屏幕加载()是一个承诺 –

+0

$没有回应,建议用这种方式:。 $加载(),然后(函数(){ ... }); – lesimoes

回答

0

我意识到发生了什么事情。我犯了两个错误,首先,我没有在Firebase中使用(没有身份验证方法),并且从Firebase获取数据是必要的。第二个错误是,我在服务注入“$范围。”我没有登录,拿了的$范围,一切运行良好