如何在Javascript中从Firebase检索数据?
我有一个节点名为群聊,另一个节点名为用户。节点group\u chat包含包含消息、时间和发件人id的子节点。而节点users包含用户的详细信息。当我从群组聊天节点检索聊天时,我还想显示每个发件人的信息。关于使用此代码如何在Javascript中从Firebase检索数据?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我有一个节点名为群聊,另一个节点名为用户。节点group\u chat包含包含消息、时间和发件人id的子节点。而节点users包含用户的详细信息。当我从群组聊天节点检索聊天时,我还想显示每个发件人的信息。关于使用此代码 rootChat.on("child_added", function (snapshot) { if(snapshot.val().sender_id == logged_in_user_id) { // Message by You
rootChat.on("child_added", function (snapshot) {
if(snapshot.val().sender_id == logged_in_user_id) {
// Message by You
// Print snapshot.val().message
}
else{
const refUser = "/users/"+snapshot.val().sender_id;
const rootUser = database.ref(refUser);
rootUser.once("value", function(snap) {
// Print snap.val().name
// Display snap.val().picture
// Print snapshot.val().message
});
}
});
问题是,当代码处于else状态时,它是另一个用户的消息,它通过特定节点检索用户的信息。但在做这件事的同时,它会自动地进入下一个孩子,同时通过第一个孩子的用户细节,这会自动破坏显示中间消息、中间消息和结尾消息的排列。
如果我在nodegroup\u chat中有4个名为-child1、-child2、-child3和-child4的子节点,在检查-child1时,它也会检查-child2,有时会在-child1之前打印-child2。
我如何解决它?有没有什么方法可以让我等待else条件完成,然后转到下一个孩子?或者有没有什么方法可以让我在一行代码中获得用户的详细信息
// rootUser.child.name
在开始构建HTML之前,如何预加载用户 其概要如下:
,而不是在(“添加的子项”
)上使用,这样您可以一次获得所有消息
一次(“值”)
调用。请注意一次()
返回承诺,因此您可以等待所有用户加载承诺.all()
是的,这对我来说很有效。我一直在考虑,但我想这可能会减慢进程