Firebase问题:我正在尝试从firebase数据库中按从大到小的顺序检索数据,然后在html中显示它。但是,我没有取得任何成功。我知道如何获取数据,但我无法从最大到最小的顺序得到它。这是可能的,还是我必须在数据回来时对数据进行排序?
这是我正在使用的代码。
``for(var x in allUsers){
//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 :(得分:0)
您可以将得分字段复制为&#34; negative_score&#34;例如,在每次更新时将其乘以-1。这就像遮蔽了这个领域。有了Firebase实时数据库的限制,我们的思维方式就是在写入数据库时对所有内容进行非规范化处理,以便达到所需的目的。
这样您就可以按照自己的方式对其进行排序。