Javascript Firesbase orderByChild不';我不能在时间戳上工作
我想在时间戳上使用orderByChild。Javascript Firesbase orderByChild不';我不能在时间戳上工作,javascript,firebase-realtime-database,Javascript,Firebase Realtime Database,我想在时间戳上使用orderByChild。 但效果不好。它们甚至按升序或降序排序 结果如下: 第一:1581952308253 第二名:1581671445437 最后:1583254605108 这是我的代码: toolboxesRef.orderByChild('timestamp').once('value', snapshot => { res.json(snapshot.val()) }) 我知道我可以使用数组来确定数据应按升序或降序排序。 但要知道,它甚至
但效果不好。它们甚至按升序或降序排序 结果如下:
- 第一:1581952308253
- 第二名:1581671445437
- 最后:1583254605108
toolboxesRef.orderByChild('timestamp').once('value', snapshot => {
res.json(snapshot.val())
})
我知道我可以使用数组来确定数据应按升序或降序排序。但要知道,它甚至不起作用。有人知道这个问题吗?JSON对象中属性的顺序未定义。因此,只要调用
snapshot.val()
,子节点的顺序就会丢失
要维护顺序,请使用快照.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);
})