我正在开发一个网络应用,在我网站主页的记分板中显示10个得分最高的用户,加载用户数据的功能如下。
function loadTopUsers() {
var database = firebase.database();
var table = document.getElementById("scoreboard");
var i = 1;
return database.ref("/scores").limitToFirst(10).once("value").then((snapshot) => {
snapshot.forEach(function(childSnapshot) {
//Name
var uid = childSnapshot.key;
//return database.ref("/users/" + uid).child("name").once("value").then((nameSnapshot) => {table.rows[i].cells[1].innerHTML = nameSnapshot.val();});
table.rows[i].cells[1].innerHTML = uid;
//Score
var score = childSnapshot.val();
table.rows[i].cells[2].innerHTML = score;
i = i + 1;
});
});
}
-users:
-[UID]:
-name : [name]
-score : 0
-scores:
-[UID] : [score]
在第9行注释掉的当前状态下,表格中充满了用户UID和分数。但是,如果我取消注释第9行和注释第10行,则只加载第一个用户名。那么为什么会发生?我该如何解决?这是加载数据的好方法/我应该如何加载数据?