Проверьте, существует ли электронная почта в авторизации firestore при регистрации (Angular) - PullRequest
1 голос
/ 24 сентября 2019

Когда пользователь регистрируется в нашем приложении, я хочу, чтобы он знал, существует ли уже электронное письмо, на которое он пытается подписаться, без необходимости отправки формы (AKA из-за размытия поля электронной почты).В нынешнем виде пользователь должен ввести свои данные и нажать кнопку «Регистрация», прежде чем он сообщит им, принято ли электронное письмо или нет.

Необходимое поведение можно наблюдать при регистрации в spotify, когда вы вводите адрес электронной почты, и как только вы щелкаете по ней, вы видите следующее:

enter image description here

Пока что я написал облачную функцию (http), которая запускается при размытии и вызывает функцию getUserByEmail из авторизации администратора firestore.Функция выглядит следующим образом:

export const checkUserEmail = https.onRequest((req, res) => {
    corsHandler(req, res, async () => {
        try {
            const email = req.body.email;
            await admin.auth().getUserByEmail(email);

            res.send({status: 200});
            return;
        } catch(e) {
            return Helpers._handleError(res, 400, e.message);
        }
    })
});

Это работает, так как сейчас я могу проверить, существует ли в данный момент электронное письмо, но проблема в том, что для проверки требуется от 3 до 10 секунд (достаточно долго).чтобы пользователь мог глубже погрузиться в процесс регистрации).

Есть ли способ:

  1. Ускорить функцию облака или
  2. Проверить, является ли пользовательуже прошел проверку подлинности по электронной почте, предоставленной непосредственно на стороне клиента с пожарным депо?

Заранее спасибо

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете использовать коллекцию users, которую вы, возможно, уже делаете.Это может хранить информацию о пользователе и часто оказывается действительно управляемым, так как аутентичный пользователь не может быть обновлен с помощью полей, а не как из коробки.

Вы можете хранить электронные письма пользователей здесь и проверять коллекциюдля ввода пользователя по сравнению с полем электронной почты коллекции users здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...