数据库请求暂停程序流程?

时间:2017-12-23 14:35:13

标签: javascript firebase firebase-realtime-database

我正在开发一个网络应用,在我网站主页的记分板中显示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行,则只加载第一个用户名。那么为什么会发生?我该如何解决?这是加载数据的好方法/我应该如何加载数据?

0 个答案:

没有答案