每当页面滚动到最大值时,我设法成功调用函数,但我不知道如何使该函数以正确的顺序从数据库中调用数据。这是我目前的代码:
function loadMoreData(num) {
var rawDataRef = db.ref("chat/"+group);
rawDataRef.on("value", function(data) {
if (data.hasChildren() == true) {
var uid = firebase.auth().currentUser.uid;
var keys = Object.keys(data.val());
var startAt = keys[num-1];
var dataRef = db.ref("chat/"+group+"/").startAt(startAt).limitToLast(15);
dataRef.on("value", function(snapshot) {
var data = snapshot.val();
var keys = Object.keys(data);
for (var i = 0; i < keys.length; i++) {
var k = keys[i];
if (data[k].uid == uid) {
$("#data").prepend('<div class="dataByMe">'+data[k].data+'</div><br><br>');
} else if (data[k].uid != uid) {
$("#data").prepend('<div class="dataByOthers">'+data[k].data+'</div><br><br>');
}
}
});
}
});
}
我的代码显示了首次加载页面时的最后25个数据,然后,当页面滚动到顶部时,我需要在最后25个数据开始的点之前加载15个以上的数据,并将其显示在底部的最新数据的顺序。我到底该怎么做?
注意:dataByMe和dataByOthers类是因为我需要以不同的方式设置它们。