0

Firebase에서 데이터를 가져 오려고합니다. 필자는 Firebase를 더 잘 익히기위한 관행을 수행하며, 내 앱은 메시지 앱과 같습니다.Angularjs Firebase가 데이터 목록 가져 오기

내 문제는 이러한 메시지 데이터를 가져 오려고하지만 고유 한 ID를 가지고 있기 때문에 문제가 발생한다는 것입니다. messagecontents, dates에 어떻게 연락하나요?

여기 내 데이터베이스 구조입니다 :

angularish 
    -> <id> 
     -> "sender" : "john" 
     -> "to" : "sarah" 
     -> "date" : "16/09/2016" 
     -> "messageContent" : "Something like a long text..." 
    -> <id> 
     -> "sender" : "john" 
     -> "to" : "sarah" 
     -> "date" : "16/09/2016" 
     -> "messageContent" : "Something like a long text..." 
    -> <id> 
     -> "sender" : "john" 
     -> "to" : "sarah" 
     -> "date" : "16/09/2016" 
     -> "messageContent" : "Something like a long text..." 

여기 내 코드입니다 :

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Test3 Angular</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script> 
    <script src="https://www.gstatic.com/firebasejs/3.4.1/firebase.js"></script> 
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-app.js"></script> 
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-auth.js"></script> 
    <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-database.js"></script> 
    <!-- Leave out Storage --> 
    <!-- <script src="https://www.gstatic.com/firebasejs/3.4.0/firebase-storage.js"></script> --> 
    <script> 
     // Initialize Firebase 
     firebase.initializeApp(config); 
    </script> 
    <script> 
     var app2 = angular.module("theapp",[]); 
     app2.controller("generalController",function($scope){ 

      var database = firebase.database(); 
      var rootRef = database.ref(); 
      var subRootRef = rootRef.child("angularish"); 
      $scope.messages = []; 

      rootRef.push({ 
       "sender":"y", 
       "to" : "x", 
       "messageContent" : "Something like a long text", 
       "date" : "10/06/2016" 
      }); 

      rootRef.on("value",function(snapshot){ 
      $scope.messages = snapshot.val(); 
      console.log(snapshot.val()); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <div class="container" ng-app="theapp" ng-controller="generalController"> 
     {{ 1+1 }} 
     <ul> 
      <li ng-repeat="message in messages"> 
       {{ message.messageContent }} 
      </li> 
     </ul> 
    </div> 
</body> 
</html> 
+1

당신이 내가 그것을 사용하려고하지만, 다시 내가 angularfire – charlietfl

+0

를 사용하면 훨씬 간단 : // 중포 기지 .google.com/docs/database/web/retrieve-data # filtering_data 예를 들자면 http://jsfiddle.net/katowulf/vQEmt/2/ –

+0

에 당신과'endAt' HTTPS'startAt'를 사용할 수 있도록 할 수있는 방법 :(없습니다 angularFire –

답변

2

당신에게없는 게 $scope.$apply() 당신이 한 이후 각의 밖에서 GET 사이클을 소화.

rootRef.on("value",function(snapshot){ 
    $scope.messages = snapshot.val(); 
    console.log(snapshot.val()); 
    $scope.$apply(); 
}); 
+0

'val()'의 결과를 변환해야하지 않습니까? 'ng-repeat'를 사용하려면? – cartant

+1

'ng-repeat'는 객체와 함께 작동합니다. 예를 들어 정렬하려면 문자열을 배열로 변환해야합니다. 예 : http : // jsfiddle.net/kk8gyjt1/ –

관련 문제