2017-10-12 103 views
0

Firebase问题:我试图从Firebase数据库中按照从最大到最小的顺序检索数据,然后将其显示在html中。但是,我没有取得任何成功。我知道如何获取数据,但我无法从最大到最小的顺序获取数据。这是可能的还是我必须对数据进行排序?从Firebase以最大到最小的顺序检索数据

这是我正在使用的代码。

``用于(在AllUsers的变种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

例如,您可以将得分字段复制为“negative_score”,并在每次更新时将其乘以-1。这就像遮蔽了田野。借助Firebase实时数据库的局限性,您的想法就是在您写入数据库时​​将所有可以规范化的内容去规范化,以便实现您的需求。

这样你就可以按你想要的方式对它进行排序。