Angularjs服务不从Firebase返回数据

时间:2016-11-16 04:54:26

标签: angularjs firebase firebase-realtime-database

我可能会在此处找到一些非常明显的内容,但我无法让Angularjs服务从Firebase数据存储区返回用户列表。

这不是如何一般性地从ajax调用返回响应的问题,而是关于如何在Angularjs服务中正确使用Firebase的Promise的更多信息

.service('userService', function() {
    var data; //initialize data variable
    this.getUsers = function() {
        var ref = firebase.database().ref('/users/');
        ref.once('value').then(function(snapshot) {
            users = snapshot.val(); //returns a list of user objects
        }).then(function(){
            data = users //this populates data with all the user objects
        }, function(error){
            alert('error:  ' + error);
        });
    }
    return data; //data is undefined here

}]);

我怀疑它与then()功能有关,但是我已经对这个问题进行了太长时间的讨论 - 任何想法?

1 个答案:

答案 0 :(得分:0)

ref.once('value').then(function(snapshot) {
            users = snapshot.val(); //returns a list of user objects
            return users;
        }).then(function(){
            data = users //this populates data with all the user objects
        }, function(error){
            alert('error:  ' + error);
        });

我认为,你应该让用户重新处理下一个()。