gpt4 book ai didi

javascript - Firebase orderByChild 无法在 Javascript 中工作

转载 作者:行者123 更新时间:2023-11-28 17:44:20 25 4
gpt4 key购买 nike

我想获取我的 firebase 节点的有序列表

inboxMessageFetch(mobileNumber, firebaseToken) { 
return firebase.database().ref(`messaging/${mobileNumber}/inbox`).orderByChild("time")
.on('value', snapshot => {
if (snapshot.exists()) {
this.inboxMessages = snapshot.val();
console.log('FB', this.inboxMessages);
}
});
}

这是我的数据库 enter image description here

最佳答案

当您对 Firebase 数据库执行查询时,可能会出现多个结果。因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

您在回调中收到的快照包含所有项目的键和值,以及有关其相对顺序的信息。不幸的是,当您调用 snapshot.val() 时,有关排序的信息会丢失。

您的代码需要考虑到这一点,并且应该使用 snapshot.forEach() 按请求的顺序循环结果:

inboxMessageFetch(mobileNumber, firebaseToken) { 
firebase.database().ref(`messaging/${mobileNumber}/inbox`).orderByChild("time")
.on('value', snapshot => {
this.inboxMessages = [];
snapshot.forEach((messageSnapshot) {
console.log(messageSnapshot.key, messageSnapshot.val();
this.inboxMessages.push(messageSnapshot.val());
});
console.log(this.inboxMessages);
});
}

关于javascript - Firebase orderByChild 无法在 Javascript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47141306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com