【发布时间】:2026-01-13 21:45:01
【问题描述】:
我正在使用 Google Firebase 将数据加载到我的应用中。我正在做一个初始加载,获取最后 40 条聊天消息,如下所示:
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);
};
元素附加到<div class="chat-staging"></div>
添加完所有消息后,我想用函数触发事件。
但我似乎无法弄清楚如何检测是否所有消息都已附加,因为我不知道数据库中有多少消息。有时不到40个。
所以我想:检测对服务器的调用何时完成以及检索了多少消息。但是怎么做?!
【问题讨论】:
-
嗨,贾巴,如果我的回答对您有帮助或者您仍有任何疑问,请告诉我。谢谢。
-
嗨,它并没有真正起作用。得到奇怪的结果。也许是因为我自己乱七八糟的代码。我现在想出了另一种方法:) 谢谢你和我一起思考!
标签: javascript firebase firebase-realtime-database