2017-10-12 14 views
0

Firebaseの質問:Firebaseデータベースからデータを最大から最小の順番で取得し、それをhtmlで表示しようとしています。しかし、私は成功していません。私はデータを元に戻す方法を知っていますが、私はそれを最大から最小まで順番に取得することはできません。これは可能ですか、データが戻ってきたらソートする必要がありますか?Firebaseのデータを最大から最小の順に取得

ここに私が使用しているコードがあります。 (ALLUSERSでのvar x)のための

は `` {コード行のため

   //db.ref('users/' + x).orderByChild('score').startAt(10000).on('value', snapshot => { 
       db.ref('users/' + x).orderByChild('score').endAt(9999).on('value', snapshot => { 
       //db.ref('users/' + x).on('value', snapshot => { 
        console.log(snapshot.val()); 

        const newUserRow = $("<tr>"); 
        const userName = $("<th> scope ='row'> ").html(snapshot.val().firstName); 
        const userLevel = $("<td>").html(snapshot.val().level); 
        const userPoints = $("<td>").html(snapshot.val().score); 

        newUserRow.append(userName) 
          .append(userLevel) 
          .append(userPoints); 
         $("#LeaderboardInformation").append(newUserRow); 
       });`` 

私の思考プロセスである: 1)データベース 'ユーザ' 2から取得) 'スコア' キー を取得します3)スコアが「10000」のところから始めます。

答えて

0

たとえば、scoreフィールドを "negative_score"として複製し、更新ごとに-1を掛けることができます。これは、フィールドをシャドウするようなものです。 Firebase Realtime Databaseの制限により、DBに書き込むときにできるすべてを非正規化して、必要なものを実現することができます。

この方法で、あなたはそれをあなたが望むようにソートすることができます。

関連する問題