Google Firebase, оповещение об ошибках регистрации и входа - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время работаю в системе входа и регистрации, используя Google Firebase для аутентификации. Функции входа в систему и регистрации аккаунта работают. Я добавил окно предупреждения, если пользователь правильно вошел в систему и вышел из нее. Я пытаюсь добавить окно оповещения, если пользователь пытается зарегистрироваться с существующим адресом электронной почты или вводит неверный адрес электронной почты или пароль при попытке входа в систему. Вот мои функции для регистрации и входа в систему: Какой другой код я должен / должен добавить к нему, чтобы получить предупреждение?

// signup
const signupForm = document.querySelector("#signup-form");
signupForm.addEventListener("submit", e => {
  e.preventDefault();

  // get user info
  const email = signupForm["signup-email"].value;
  const password = signupForm["signup-password"].value;

  // sign up the user
  auth.createUserWithEmailAndPassword(email, password).then(cred => {
    // close the signup modal & reset form
    const modal = document.querySelector("#modal-signup");
    M.Modal.getInstance(modal).close();
    signupForm.reset();
  });
});
// login
const loginForm = document.querySelector("#login-form");
loginForm.addEventListener("submit", e => {
  e.preventDefault();

  // get user info
  const email = loginForm["login-email"].value;
  const password = loginForm["login-password"].value;

  // log the user in
  auth.signInWithEmailAndPassword(email, password).then(cred => {
    // close the signup modal & reset form
    const modal = document.querySelector("#modal-login");
    M.Modal.getInstance(modal).close();
    loginForm.reset();
  });
});

1 Ответ

2 голосов
/ 21 апреля 2020

используйте then() catch() для проверки обратного вызова ошибок

firebase имеет список кодов общих ошибок, см. Подробнее здесь: https://firebase.google.com/docs/auth/admin/errors

пример


auth.signInWithEmailAndPassword(email, password).then(cred => {
  // close the signup modal & reset form
  const modal = document.querySelector("#modal-login");
  M.Modal.getInstance(modal).close();
  loginForm.reset();
}).then(() => {
  // do something
}).catch((error) => {
  if (error.code === 'auth/email-already-in-use') {
     alert('email already in use!');
  } else if (error.code === 'auth/network-request-failed') {
      alert('without network connection!');
  } else if (error.code === 'auth/invalid-email') {
      alert('invalid E-mail!');
      // email wrong format
  }
});

...