2016-09-03 2 views
0

AngularFire와 Firebase를 사용하여 순위별로 팀을 정렬하려고합니다.AngularFire 순위별 맞춤 주문

Firebase에는 4 개의 팀이 있는데 이름이 저장됩니다. 나는 또한 매치를 저장합니다.이 매치는 매치를 논박하는 두 팀에 대한 참조와 각 매치의 스코어를 가지고 있습니다.

matches  
    -KQgphN_5692GySN0Oxz 
     home_team: teamA 
     away_team: teamB 
     score 
      home: 1 
      away: 2 
    -KQlu6XLak6LgAr9cTty 
     home_team: teamC 
     away_team: teamD 
     score 
      home: 2 
      away: 2 

그리고 팀 노드 :

가 일치 노드는 다음과 같습니다

teams 
    teamA 
     name: "Team A" 
    teamB 
     name: "Team B" 
    teamC 
     name: "Team C" 
    teamD 
     name: "Team D" 

그래서, 내가 vitories하여 이러한 팀을 주문해야을 실시간으로 결과를 보면서 무 손실 .

<li ng-repeat="team in teams">{{team.name}}</li> 

그래서, 승리는 3 점에 해당한다는 계정에 복용 승리로이 팀을, 주문 방법, 무승부는 1 :

나는 같은 팀을 나열하는 NG-반복을 포인트와 손실은 0 점입니까? 상기 일치 예에

, 순위가 같아야

1 - 팀 B

2 - 팀 C

3 - 팀 D

4 -

답변

0
팀을 만들

중첩 된 값이 고정 된 경로에있는 한 중첩 된 값으로 Firebase 데이터베이스 쿼리를 정렬 할 수 있습니다. 즉, 각 팀의 점수를 저장해야합니다. 이 인쇄됩니다

var leaders = ref.child('teams').orderByChild('score').limitToLast(3); 
leaders.on('value', function(snapshot) { 
    leaders.forEach(function(leaderSnapshot) { 
     console.log(leaderSnapshot.child('name').val()); 
    }); 
}); 

:이 구성에

teams 
    teamA 
     name: "Team A" 
     score: 20 
    teamB 
     name: "Team B" 
     score: 12 
    teamC 
     name: "Team C" 
     score: 42 
    teamD 
     name: "Team D" 
     score: 31 

, 당신과 함께 순서대로 상위 팀을로드 할 수 있습니다

A 팀

팀 D

팀 C

리더 보드를 가져 오려면 리더 보드를 반전해야합니다.