javascript - 使用负时间戳按降序对 firebase 数据进行排序

标签 javascript firebase firebase-realtime-database

enter image description here

上面是我的 firebase 数据库的屏幕截图。我正在尝试使用负时间戳按降序对 firebase 数据进行排序。我正在使用以下命令:

  const feedRef = database.ref('ducks')
  feedRef.orderByChild('timestamp').on('value', (snapshot, error) => {
    const feed = snapshot.val()})

我一直按照与数据库相同的顺序获取提要,而不是像我想要的那样按降序排列。我认为它不起作用,因为鸭子端点没有子名称时间戳 我将如何实现这一目标?推送生成的 key 是否有时间戳数据?

最佳答案

当您在快照上调用 .val() 时,它会转换为 JSON 对象。根据定义,JavaScript 对象中的键是无序的(尽管许多实现会按字典顺序迭代键)。

如果您在 Firebase 数据库上运行查询,则必须确保在以正确的顺序获取项目之前不会将其转换为 JSON。在您的情况下,使用 DataSnapshot.forEach() :

const feedRef = database.ref('ducks')
var feed = [];
feedRef.orderByChild('timestamp').on('value', (snapshot, error) => {
    snapshot.forEach((duckSnap) => {
        const duck = duckSnap.val()
        console.log(duckSnap.key+'='+duck.name);
        feed.push(duck);
    });
    console.log(feed);
});

关于javascript - 使用负时间戳按降序对 firebase 数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38548406/

相关文章:

ios - Objective-C - 无法通过 Firebase 动态链接打开我的应用程序

ios - Swift - 如何将复杂对象写入 Firebase 实时数据库

javascript - .forEach() 在第一次迭代后停止

swift - 在 Swift 中使用 Firebase Cloud Messaging 将通知作为消息发送

javascript - 了解匹配多个字符串的正则表达式中\b 的用法

reactjs - 如何使用这些代码将数据放入 MuiDataTable 中?

firebase-realtime-database - Flutter 按时间戳对 Firebase 快照进行排序

Firebase 数据库快照 ForEach 异步等待

javascript - React setState 调用不更新状态

javascript - 作为参数传递的函数应该使用同一调用中的另一个参数