Javascript 如何检测Firebase servercall何时完成
我正在使用Google Firebase将数据加载到我的应用程序中。我正在进行初始加载,以获取最后40条聊天信息,如下所示:Javascript 如何检测Firebase servercall何时完成,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在使用Google Firebase将数据加载到我的应用程序中。我正在进行初始加载,以获取最后40条聊天信息,如下所示: firebase.database().ref('/messages').limitToLast(40).once('value', function(messages) { traverseMessages(messages.val()); }); 然后遍历: // traverse messages function function traverseMes
firebase.database().ref('/messages').limitToLast(40).once('value', function(messages) {
traverseMessages(messages.val());
});
然后遍历:
// traverse messages function
function traverseMessages(obj) {
for (var prop in obj) {
var message = obj[prop].message;
var chatUser = obj[prop].username;
// populate function with data
createChatElements(chatUser, message);
};
};
创建HTML元素:
// build html for chat elements
function createChatElements(chatUser, message) {
// build HTML
var chatHTML = '<div class="chat-message">';
chatHTML += '<h5 class="chat-message-username">' + chatUser + '</h5>';
chatHTML += '<p class="chat-message-message">' + message + '</p>';
chatHTML += '</div>';
// function to append chat
appendChatToStaging(chatHTML);
};
//为聊天元素构建html
函数createChatElements(聊天用户、消息){
//构建HTML
var chatHTML='';
chatHTML+=''+chatUser+'';
chatHTML+=''+message+'
';
chatHTML+='';
//附加聊天功能
附录chattostaging(chatHTML);
};
元素被附加到
当所有消息都被追加后,我想用一个函数触发一个事件
但我似乎不知道如何检测是否所有的消息都被附加了,因为我不知道数据库中有多少消息。有时不到40人
所以我想:检测对服务器的调用何时完成,以及检索了多少条消息。但是怎么做 调用
traverseMessages
时,来自firebase的调用已经完成。因此,如果您想在附加所有数据之后立即调用某个对象,可以在遍历消息中的for
循环之后立即调用
此外,如果您想知道firebase返回了多少对象,可以使用以下选项:
Object.keys(messages.val()).length
嘿,贾巴,让我知道我的回答是否有用,或者你是否还有任何疑问。谢谢。嗨,没用。结果很奇怪。也许是因为我自己的代码太乱了。我现在想出了另一个办法:)谢谢你和我一起思考!