目前正在开发一个使用谷歌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();
});
});发布于 2020-04-21 15:09:09
使用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
}
});https://stackoverflow.com/questions/61337653
复制相似问题