Я создаю веб-приложение с NodeJS, использую Firebase для аутентификации, и при тестировании приложения у меня возникает ошибка.
Если пользователь входит в приложение, все работает нормально, но при попытке подписатьс другим пользователем, в то время как первый пользователь все еще подписан в приложении, аварийно завершает работу и выдает ошибку, указанную в заголовке.
Я просто тестирую свое приложение локально, используя мой компьютер и используя два разных браузера для входа в систему.два разных пользователя.Мой первый вопрос: могу ли я на самом деле сделать это, и Node будет обрабатывать обоих пользователей независимо?и если я могу, что может быть причиной, почему я получаю эту ошибку?
Я думаю, что приложение выдает эту ошибку, потому что Node пытается ответить обоим пользователям, даже если только один из них делаетзапросы, но я не уверен, является ли это причиной.
Это мой код:
app.post('/', (req, res)=>{
const email = req.body.email;
const password = req.body.password;
const promise = auth.signInWithEmailAndPassword(email, password);
promise.catch(e => console.log(e.message));
firebase.auth().onAuthStateChanged(firebaseUser => {
if (firebaseUser){
User.find({userId: firebaseUser.uid}, (err, user)=>{
userId = user[0].userId;
});
Item.find({date: {"$gte": moment().startOf('day'), "$lt": moment().endOf('day')}, user: firebaseUser.uid}, (err, allItems)=>{
if (err) {
console.log(err);
} else {
var total = 0;
allItems.forEach((item)=>{
total = total + item.calories;
});
Limit.find({}, (err, allLimit)=>{
allLimit.forEach((item)=>{
limit = item.limit;
console.log('New limit: '+ limit);
});
});
res.render('itemlist', {'itemlist': allItems, total, limit, limitId});
}
});
} else {
console.log('not log in');
}
})
});