gpt4 book ai didi

javascript - Firebase orderByChild 不适用于时间戳

转载 作者:行者123 更新时间:2023-12-02 21:35:21 26 4
gpt4 key购买 nike

我想在时间戳上使用 orderByChild。
但效果并不好。它们甚至按升序或降序排序。

这是结果:

  • 第一:1581952308253
  • 第二位:1581671445437
  • 最后:1583254605108

enter image description here

这是我的代码:

 toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
res.json(snapshot.val())
})

我知道我可以使用数组来确定数据应按升序或降序排序。
但要知道它甚至没有排序。有谁知道问题所在吗?

最佳答案

JSON 对象中的属性顺序未定义。因此,一旦调用 snapshot.val(),子节点的顺序就会丢失。

要保持顺序,请使用 snapshot.forEach() 循环子节点:

toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
snapshot.forEach(child => {
console.log(child.val())
})
})

因此,如果您想将键和值返回到 res,您需要将快照转换为数组:

toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
let response = [];
snapshot.forEach(child => {
response.push({ key: child.key, value: child.val() });
})
res.json(response);
})

关于javascript - Firebase orderByChild 不适用于时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60512542/

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