【发布时间】:2018-05-17 01:49:40
【问题描述】:
我正在尝试查询 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 数据库调用是不同的,一个是 once 和 then (所以它必须是一个承诺..?)另一个是 on(所以我想这只是一个正常的回调......)。
您知道这里为什么会发生吗?对不起,如果这很明显,但我有点初学者..
【问题讨论】:
标签: javascript node.js firebase firebase-realtime-database firebase-admin