Ошибка аутентификации NodeJS и Firebase.Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту - PullRequest
0 голосов
/ 18 октября 2018

Я создаю веб-приложение с 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');
    }
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...