如何使用 firebase-admin 模块从带有 Node.js 的 Firebase 数据库返回有序数据?

迪奥戈·卡佩拉

我正在尝试查询 Firebase 数据库以获取按时间戳排序的数据。

1:这有效,但返回的数据不是按时间戳排序的:

router.get('/articles', function(req, res, next) {
    admin.database().ref('articles').orderByChild('timestamp').once('value').then(function (snapshot) {
        let articles = snapshot.val();
        console.log(articles);
        res.render('articles', articles);
    });
});

2:这会返回我想要的按时间戳排序的数据(我可以在console.log中看到它),但我收到此错误:

// /node_modules/express/lib/response.js:1003
//   if (err) return req.next(err);
//                      ^
// TypeError: req.next is not a function

router.get('/articles', function(req, res, next) {
    admin.database().ref('articles').orderByChild('timestamp').on('child_added', function (snapshot) {
        let articles = snapshot.val();
        console.log(articles);
        res.render('articles', articles);
    });
});

我不明白我做错了什么。我看到这两个火力点数据库调用是不同的,一个是曾经然后(因此它必须是一个承诺..?),另一个是(所以我想这只是一个正常的回调...)。

你知道为什么会在这里发生吗?对不起,如果这很明显,但我有点初学者..

弗兰克·范·普费伦

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

因此,在您的第一个示例中,snapshot它们包含以下内容:匹配节点的键、它们的值以及它们之间的顺序。当您调用snapshot.val()此数据时,该数据将转换为常规 JSON 对象,该对象没有空间容纳所有三个信息。此时,订购信息被删除。

解决方案是使用snapshot.forEach()以正确顺序循环匹配节点。

admin.database().ref('articles').orderByChild('timestamp').once('value').then(function (snapshot) {
  var articles = [];
  snapshot.forEach(function(articleSnapshot)
    articles.push(snapshot.val());
  });
  console.log(articles);
  res.render('articles', articles);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有 node.js 的 firebase admin:在嵌套的 JSON 树中更新

来自分类Dev

为什么数据库快照未定义 Firebase Admin Node Js?

来自分类Dev

如何阅读Firebase Node.js模块?

来自分类Dev

如何通过使用Node.js的Web应用程序正确使用Firebase Admin SDK?

来自分类Dev

如何从Firebase数据库获取所有数据?

来自分类Dev

Firebase读取有序数据的顺序颠倒了吗?

来自分类Dev

当用户使用 discord.js + node.js 加入和离开时,如何更新 firebase 数据库

来自分类Dev

有没有一种方法可以在使用 Node.js 时在 firebase (admin) 中进行搜索查询?

来自分类Dev

在使用云功能时,如何使用Firebase Admin SDK更改Firebase实时数据库中的数据?

来自分类Dev

如何使用Admin SDK为数据库触发器设置Firebase FCM

来自分类Dev

从 Node 使用 Firebase 实时数据库

来自分类常见问题

无法在Node.js中导入firebase-admin

来自分类Dev

无法在Node.js中导入firebase-admin

来自分类Dev

Flutter:使用带有http请求的Firebase实时数据库实现分页

来自分类Dev

如何在没有 Firebase 的情况下使用 DialogFlow、node.js v2 库

来自分类Dev

Firebase数据库子创建问题(带有模型)

来自分类Dev

带有 Java 8 的 App Engine 中的 Firebase Admin SDK

来自分类Dev

如何从firebase获取JSON数据,然后在angular 6中使用它,firebase返回带有值标签的数据

来自分类Dev

在Firebase数据库中添加新数据后如何获取所有数据

来自分类Dev

使用js在firebase数据库上设置多个键

来自分类Dev

如何使用Android在Firebase数据库中添加具有特定值的特定键?

来自分类Dev

带有 Firebase 实时数据库和 VueFire 的 Vue.js 应用突然停止工作

来自分类Dev

无法从Firebase数据库Node.js / JavaScript获取数据

来自分类Dev

如何使用随机生成的ID将现有数据更新到Firebase实时数据库中的数据

来自分类Dev

如何使用Node.js获取数据并将其设置为Firebase?

来自分类Dev

admin.firestore.FieldValue.serverTimestamp()无法与Firebase实时数据库一起使用

来自分类Dev

如何在Firebase数据库中获取所有孩子的数据?

来自分类Dev

如何在 ListView 上获取所有孩子的数据 - Firebase 数据库

来自分类Dev

如何为firebase数据库中的所有子数据设置值?

Related 相关文章

  1. 1

    带有 node.js 的 firebase admin:在嵌套的 JSON 树中更新

  2. 2

    为什么数据库快照未定义 Firebase Admin Node Js?

  3. 3

    如何阅读Firebase Node.js模块?

  4. 4

    如何通过使用Node.js的Web应用程序正确使用Firebase Admin SDK?

  5. 5

    如何从Firebase数据库获取所有数据?

  6. 6

    Firebase读取有序数据的顺序颠倒了吗?

  7. 7

    当用户使用 discord.js + node.js 加入和离开时,如何更新 firebase 数据库

  8. 8

    有没有一种方法可以在使用 Node.js 时在 firebase (admin) 中进行搜索查询?

  9. 9

    在使用云功能时,如何使用Firebase Admin SDK更改Firebase实时数据库中的数据?

  10. 10

    如何使用Admin SDK为数据库触发器设置Firebase FCM

  11. 11

    从 Node 使用 Firebase 实时数据库

  12. 12

    无法在Node.js中导入firebase-admin

  13. 13

    无法在Node.js中导入firebase-admin

  14. 14

    Flutter:使用带有http请求的Firebase实时数据库实现分页

  15. 15

    如何在没有 Firebase 的情况下使用 DialogFlow、node.js v2 库

  16. 16

    Firebase数据库子创建问题(带有模型)

  17. 17

    带有 Java 8 的 App Engine 中的 Firebase Admin SDK

  18. 18

    如何从firebase获取JSON数据,然后在angular 6中使用它,firebase返回带有值标签的数据

  19. 19

    在Firebase数据库中添加新数据后如何获取所有数据

  20. 20

    使用js在firebase数据库上设置多个键

  21. 21

    如何使用Android在Firebase数据库中添加具有特定值的特定键?

  22. 22

    带有 Firebase 实时数据库和 VueFire 的 Vue.js 应用突然停止工作

  23. 23

    无法从Firebase数据库Node.js / JavaScript获取数据

  24. 24

    如何使用随机生成的ID将现有数据更新到Firebase实时数据库中的数据

  25. 25

    如何使用Node.js获取数据并将其设置为Firebase?

  26. 26

    admin.firestore.FieldValue.serverTimestamp()无法与Firebase实时数据库一起使用

  27. 27

    如何在Firebase数据库中获取所有孩子的数据?

  28. 28

    如何在 ListView 上获取所有孩子的数据 - Firebase 数据库

  29. 29

    如何为firebase数据库中的所有子数据设置值?

热门标签

归档