I am stuck on this issue. When I try and enter the same email and a different password for a signup page I am creating I am not getting the same email was used error but when I use the same email and password then it says email in use. How do I make it so it says email in use even if the password is different?
Thanks
Here is my code:
function signUp(email,password){ //Check if email adress registerd then password security firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error){ var errorCode = error.code; console.log(error.message, errorCode) if(errorCode == "auth/weak-password"){ alert("Password too weak") } else if(errorCode == "auth/email-already-in-use"){ alert("Email in use aldready") } else{ //If succsess firebase.auth().sendSignInLinkToEmail(email, actionCodeSettings).then(() => { window.localStorage.setItem('emailForSignIn', email); }).catch((error) => { var errorCode = error.code; var errorMessage = error.message; }); } }) }
Edit: I tried using the fetch method, but I still run into the same issue
function signUp(email,password){ //Check if email adress registerd then password security firebase.auth().fetchSignInMethodsForEmail(email) .then((signInMethods) => { if (signInMethods.length) { alert("Aldready signed up with this email") } else { // User does not exist. Ask user to sign up. } }) .catch((error) => { // Some error occurred. }); }
Advertisement
Answer
To detect if an email is already in use, don’t call createUserWithEmailAndPassword
, but instead call fetchSignInMethodsForEmail
.