Javascript 使用firebase对数字进行排序

Javascript 使用firebase对数字进行排序,javascript,firebase,firebase-realtime-database,google-cloud-firestore,Javascript,Firebase,Firebase Realtime Database,Google Cloud Firestore,我正在firebase中为我的游戏中的每个玩家存储一个分数 scores { name, score } 我想把分数从高到低排序 这就是我正在尝试的 let highestScore = firebase.database().ref('scores').orderByChild('/score'); highestScore.on('value', getData, (err) => console.log(err)); 这就是数据库的设置方式 如何将分

我正在firebase中为我的游戏中的每个玩家存储一个分数

 scores {
     name,
     score
 }
我想把分数从高到低排序

这就是我正在尝试的

 let highestScore = firebase.database().ref('scores').orderByChild('/score');
 highestScore.on('value', getData, (err) => console.log(err));
这就是数据库的设置方式

如何将分数按从高到低排序

多谢各位

编辑:


这篇文章被禁止提问:(我可以从中更改什么?

您是否尝试过文档中建议的功能之一:


如果您只想获得一次排名,请执行以下操作:

    let highestScore = db.ref('scores').orderByChild('score');
    highestScore.once('value', function (snapshot) {
        snapshot.forEach(function (childSnapshot) {
            var childKey = childSnapshot.key;
            console.log(childKey);
            var childData = childSnapshot.val();
            console.log(childData);
        });
    });

Firebase数据库始终以升序返回结果。这意味着您需要在客户端代码中反转结果。使用当前结构,这意味着您可以将
getData
实现为:

function getData(snapshot) {
  var scores = [];
  snapshot.forEach(function(childSnapshot) {
    scores.unshift(childSnapshot.val());
  });
  console.log(scores);
}

这将按降序显示分数,因为会将项目添加到数组的开头。

能否添加firebase节点结构和一些数据示例我添加了一些代码和db结构请同时添加
getData
。请查看,这是请求帮助的最有效方式。我添加了getData
function getData(snapshot) {
  var scores = [];
  snapshot.forEach(function(childSnapshot) {
    scores.unshift(childSnapshot.val());
  });
  console.log(scores);
}