Я был бы рад вашей помощи. Я пытаюсь использовать firebase на сервере nodejs. после первоначальных настроек я строю отдых на сервере узлов, который использовал для извлечения данных из базы данных firebase
Вот первая версия кода
app.get('/api/users/:id', (req,res) =>{
const usersRef = firebase.database().ref('users');
usersRef.once('value')
.then((snapshot) => {
console.log(snapshot);
res.status(200).send(snapshot.val())
})
.catch((error) => {
console.log(error);
res.status(404).send(error.message)
})
}))
Я проверил маршрут с почтальоном иобнаружил, что я не получил никакого ответа от того маршрута, который я проверял с журналами, что маршрут получил запрос, и я обнаружил, что должен создать асинхронный вызов к базе данных, поэтому я создал промежуточное программное обеспечение. И вот новая версия кода:
const asyncMiddleware = fn =>
(req, res, next) => {
Promise.resolve(fn(req, res, next))
.catch(next);
};
app.get('/api/users/:id', asyncMiddleware(async (req,res,nex) =>{
const usersRef = firebase.database().ref('users');
await usersRef.once('value')
.then((snapshot) => {
console.log(snapshot);
res.status(200).send(snapshot.val())
})
.catch((error) => {
console.log(error);
res.status(404).send(error.message)
})
}))
Но проблема сохраняется даже после изменений. Итак, я обнаружил, что причина проблемы в том, что стек «один раз», когда он пытался получить данные из firebase и не возвращал никакого ответа.
Я бы очень хотел, чтобы вы помогли здесь благодаря