Я пытаюсь узнать, как сделать так, чтобы заявление появилось, когда кто-то регистрируется в форме, которую я сделал, но адрес электронной почты уже использовался. Я использую firebase. Я не знаком с fetchSignInForEmail, и мне интересно, как его использовать и реализовать.
Я думаю, что могу использовать оператор if
if (email exists) {
push firebase user to directed page
} else {
statement.style.display === block
}
Мне также любопытно, как это сделать с паролями.
Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Прислушайтесь к этой ошибке. Однако я предпочитаю объединить учетные записи и позволить пользователю войти в систему. Ниже приведен пример фрагмента. Я сделал это для тебя, если вы хотите разрешить аутентификацию по электронной почте (пароль не требуется). Firebase также предлагает предварительно развернутую версию, которая поддерживает пароли и федерацию / oAuth (twitter, facebook и т. д.).
} catch (error) {
if (error.code === "auth/email-already-in-use"){
// REMEMBER AUTH CURRENT USER OBJECT
previousUser = firebase.auth().currentUser;
// WE MUST HANDLE DB READ AND DELETE WHILE SIGNED IN AS PREVIOUS USER PER FIRESTORE SECURITY RULES
if (localUserDoc){
if (localUserDoc.data().apples){
apples = localUserDoc.data().apples;
}
}
//DELETE CURRENT USER RECORD WHILE STILL SIGNED IN
await firebase.firestore().collection("users").doc(previousUser.uid).delete();
// CLEAN UP DONE. NOW SIGN IN USING EMAIL LINK CREDENTIAL
try {
var firebaseUserObj = await firebase.auth().signInAndRetrieveDataWithCredential(credential);
// FIRESTORE USER RECORD FOR EMAIL LINK USER WAS CREATED WHEN THEY ADDED APPLE TO CART
try {
var doc = await firebase.firestore().collection("users").doc(firebaseUserObj.user.uid).get();
if (doc.exists) {
if (doc.data().apples){
apples = apples + doc.data().apples;
}
}
await firebase.firestore().collection("users").doc(firebaseUserObj.user.uid).update({
apples: apples
});
} catch(error) {
console.info("Error getting document:", error);
}
previousUser.delete();
} catch (error) {
console.info(".signInWithCredential err ", error);
}
}
}