【问题标题】:How to get data from firebase?如何从firebase获取数据?
【发布时间】:2017-03-02 19:22:38
【问题描述】:

我正在尝试做一个简单的应用程序来学习如何访问 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, {
 			Users:Users,
 			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();
        }
    }
})();

有人可以帮助我吗?

【问题讨论】:

  • 尝试使用angularfire github.com/firebase/angularfire
  • 我已经将它包含在我的项目中,但是当我调用屏幕时没有任何反应
  • $loaded() 是一个承诺。尝试使用这种方式: $loaded().then(function(){ ... });
  • 还是不行:(

标签: firebase ionic-framework firebase-realtime-database


【解决方案1】:

我意识到发生了什么。我犯了2个错误,首先,我没有在firebase上登录(没有身份验证方法),从firebase获取数据需要登录。第二个错误是我在服务中注入了“$scope”。我进行了登录,获取了 $scope 并且一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多