2016-11-16 4 views
0

내가 여기에없는 것이 분명한 이유가있을 수 있지만 내 Angularjs 서비스에서 Firebase 데이터 스토어의 사용자 목록을 반환 할 수 없습니다.Angularjs 서비스가 Firebase에서 데이터를 반환하지 않습니다.

이 일반적으로 아약스 호출에서 응답을 반환하는 방법의 문제는 아니지만, 나는 그것이 상관이 의심

.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 

}]); 

AngularJS와 서비스 내에서 중포 기지의 약속을 처리하는 방법의 적절한 사용에 대한 자세한 then() 기능과 함께하지만 난 너무 오래 - 어떤 아이디어에 대한 내 머리를 두들겨 봤는데?

답변

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

나는 사용자가 다음()을 처리해야한다고 생각합니다.

관련 문제