我正在使用Firebase进行身份验证,使用NodeJS构建Web应用程序,并且在测试该应用程序时遇到错误。
如果某个用户登录了该应用程序,则一切正常,但是当我尝试以另一个用户登录而又第一个用户仍在登录时,该应用程序崩溃并抛出标题上指示的错误。
我只是使用计算机在本地测试我的应用程序,并使用两个不同的浏览器登录两个不同的用户。我的第一个问题是:我可以实际执行此操作,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');
}
})
});