Я пытаюсь запросить базу данных 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 разные, один один раз и затем (так что это должно быть обещание ..?), А другой - на (так что я полагаю, что это просто обычный обратный вызов ...).
У вас есть идеи, почему здесь происходит? Извините, если это очевидно, но я начинающий ..