Ссылка для сброса пароля Firebase сообщает, что сброс выполнен, но новый пароль не работает (Swift)IOS

Программируем под IOS
Ответить
Гость
 Ссылка для сброса пароля Firebase сообщает, что сброс выполнен, но новый пароль не работает (Swift)

Сообщение Гость »


Я пробую функцию сброса пароля Firebase. Я использую метод аутентификации по электронной почте/паролю + ссылку для подтверждения электронной почты. Я создал учетные записи, подтвердил их электронную почту по ссылке для подтверждения. Таким образом, функции создания пользователя, проверки электронной почты, входа и выхода работали должным образом.

Вот мои настройки аутентификации в Firebase:


Изображение


Когда я создаю пользователя, это работает:


Изображение


После создания пользователя я отправляю электронное письмо с подтверждением, и проверенные пользователи могут войти в систему. Это тоже работает. Вот моя функция для входа в систему (firebaseAuth = Auth.auth()):

func loginUserWith(модель: LoginFormModel, KeepSession: Bool, завершение: @escaping(_ успех: Bool, _ проверено: Bool, _ ошибка: Ошибка?)->()){ firebaseAuth.signIn(withEmail: model.email, пароль: model.password) { [self] authResult, ошибка в ошибка охранника == ноль else { print(ошибка?.localizedDescription ?? «Ошибка») завершение (ложь, правда, ошибка) возвращаться } охранник пусть authResult = authResult else { завершение(ложь,ложь,ошибка) возвращаться } пусть userId = authResult.user.uid Guard firebaseAuth.currentUser?.isEmailVerified == true else { завершение (истина, ложь, ошибка) возвращаться } //Некоторый код, который работает после успешного входа в систему } } Выход также работает, поэтому я не добавляю его сюда.

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

func resetPasswordWith(email: String, завершение: @escaping(_ error: Error?) -> Void) { firebaseAuth.sendPasswordReset(withEmail: email) {ошибка в ошибка охранника == ноль else { print(ошибка?.localizedDescription ?? «Ссылка для сброса пароля не удалась») завершение (ошибка) возвращаться } завершение (ноль) } } Затем ссылка приходит на электронную почту, открывается в моем браузере нормально:


Изображение


Открывается ссылка, запрашиваю новый пароль и когда я там написал новый пароль, он сохраняет пароль, говорит, что теперь я могу войти под своим новым паролем:


Изображение


Но когда я использую этот новый пароль в своем приложении для входа в систему, Firebase сообщает мне: «Пароль недействителен или у пользователя нет пароля». ошибка:


Изображение


Эта ошибка возникает из-за ошибки?.localizedDescription Firebase.

Кто-нибудь знает, что мне нужно делать?
[*]Я пробовал сбросить пароль в разных браузерах. [*]Я не отправляю несколько сбросов паролей и не нажимаю предыдущий вместо последнего, я обязательно нажимаю правильный. [*]Я попробовал сбросить пароль после создания пользователя, отправки ссылки для подтверждения электронной почты, подтверждения электронной почты и успешного первого входа в систему. [*]Иногда открывается новая ссылка для сброса и появляется сообщение: «Срок действия вашего запроса на подтверждение электронной почты истек или ссылка уже использовалась». Затем я возвращаюсь и снова открываю ту же ссылку, и она показывает правильный экран ввода/сохранения нового пароля, сохраняет и говорит, что теперь я могу войти в систему, используя свой новый пароль. Но новый пароль никогда не работает. Старый пароль тоже не работает.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»