В настоящее время я занимаюсь разработкой приложения для своего веб-приложения. В настоящее время процесс выглядит следующим образом:
- Пользователь заполняет страницу «Попробовать» на веб-сайте, заполнив свою электронную почту. Я использую Firebase Auth, чтобы отправить пользователю электронное письмо с подтверждением, используя метод без пароля
sendSignInLinkToEmail
. - Пользователь нажимает ссылку подтверждения в своей папке входящих сообщений, которая, в свою очередь, проверяет свою электронную почту и создает пользователя Firebase Auth. используя тип ссылки «Электронная почта» (подтип поставщика электронной почты / пароля).
- Пользователь начинает входящий поток, который на первой странице запрашивает у него пароль.
Я хочу предоставить обоим вход с электронной почтой / паролем и вход по электронной почте, однако, похоже, что оба они считаются одним и тем же провайдером, когда я пытаюсь позвонить auth.currentUser.linkWithCredential
с новыми учетными данными EmailAuthProvider
, созданными с использованием их электронной почты и пароль (подробно здесь ), я получаю ошибку auth/provider-already-linked
.
Так как не представляется возможным сделать эту ссылку, так как вход в систему электронной почты / пароля и ссылки на электронную почту находятся под того же провайдера, я также рассмотрел вызов updatePassword
(документы здесь ) для текущего пользователя, но кажется, что это всегда гарантированно выдает auth/requires-recent-login
ошибка, даже если пользователь только что щелкнул подтверждающее электронное письмо.
Мой вопрос: есть ли у кого-нибудь опыт поддержки обоих этих методов входа и знаете, какой подход я должен использовать? Возможно ли это даже (кажется, что это здесь )? Документы не делают это особенно ясно. Спасибо!