Javascript 从Firebase数据库获取最高值

Javascript 从Firebase数据库获取最高值,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在用JavaScript制作一个游戏。我想在Firebase数据库中保存分数(包括球员姓名)。以下是我的数据库结构,但如果需要,可以对其进行修改: 我如何获取并保存到一个数组,即3个最佳分数并属于它们的名称? 下面是我保存分数并尝试获取分数的代码的一部分: function writeUserData(name, score) { firebase.database().ref("scores/").push({ name: name, score:

我正在用JavaScript制作一个游戏。我想在Firebase数据库中保存分数(包括球员姓名)。以下是我的数据库结构,但如果需要,可以对其进行修改:

我如何获取并保存到一个数组,即3个最佳分数并属于它们的名称? 下面是我保存分数并尝试获取分数的代码的一部分:

function writeUserData(name, score) {
    firebase.database().ref("scores/").push({
        name: name,
        score: score,
    });
}

var bestScores = {};

var scoresRef = database.ref("scores");
scoresRef.orderByValue().limitToLast(3).on("value", function(snapshot) {
    snapshot.forEach(function(data) {
      bestScores[data.key] = data.val();
    });
});

您正在根据子属性的值对
分数下的节点进行排序,因此在这种情况下,您需要使用
orderByChild
而不是
orderByValue

var scoresRef = database.ref("scores");
scoresRef.orderByChild("score").limitToLast(3).on("value", function(snapshot) {
    snapshot.forEach(function(data) {
      console.log(data.key); // "-M-...."
      console.log(data.val().name); // "Anrzej"
      console.log(data.val().score); // 11
    });
});

谢谢但现在我得到了孩子们的价值观,比如“M-Zebblvdroyyywan”。接下来我需要做什么来获取姓名和分数?我添加了一些关于这方面的更多信息,但我强烈建议学习Firebase文档,也许还有一个教程,因为从快照获取值已经在很多地方涉及到了。