Попытка использовать fetchSignInMethodForEmail

Я пытаюсь узнать, как сделать так, чтобы заявление появилось, когда кто-то регистрируется в форме, которую я сделал, но адрес электронной почты уже использовался. Я использую firebase. Я не знаком с fetchSignInForEmail, и мне интересно, как его использовать и реализовать.

Я думаю, что могу использовать оператор if

    if (email exists) {
     push firebase user to directed page
    } else {
     statement.style.display === block
    }

Мне также любопытно, как это сделать с паролями.

Спасибо

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
55
1

Ответы 1

Прислушайтесь к этой ошибке. Однако я предпочитаю объединить учетные записи и позволить пользователю войти в систему. Ниже приведен пример фрагмента. Я сделал это для тебя, если вы хотите разрешить аутентификацию по электронной почте (пароль не требуется). 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);
                }
            }
        }

Другие вопросы по теме