Javascript 使用firebase对数字进行排序
我正在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)); 这就是数据库的设置方式 如何将分
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);
}