У меня есть сценарий, который требует проверки введенного пароля против пароля пользователя firebase до того, как пользователь выполнит необратимую задачу. Это отличается от создания учетной записи или входа в систему. Как вы можете проверить пароль для firebase? Это не похоже на свойство password
в firebase.auth().currentUser
.
Обновление: пользователь должен подтвердить свой пароль, а кнопка "Удалить" выполнит функцию, чтобы проверить его. Если он соответствует паролю firebase, кнопка "Удалить" преуспеет в запуске довольно модального всплывающего окна.
Я бы предложил вам где-нибудь сохранить пароль пользователя, если вам нужно в какой-то момент проверить его.
Вместо того, чтобы хранить его в вашей базе данных (что было бы небезопасно), я бы лично сохранил его на пользовательском устройстве с помощью UserDefaults, чтобы вы могли легко получить доступ к нему, когда вам нужно выполнять свои разумные задачи.
Обновить:
Другая возможность - использовать метод reauthenticateWithCredential. Если метод возвращает успех, выполняйте свою чувствительную задачу. Если это не удается, попросите своего пользователя ввести правильный пароль.
В соответствии с вашим запросом, вы должны повторно аутентифицировать пользователя, используя его адрес электронной почты и пароль:
// First you get your current user using Auth :
let currentUser = Auth.auth()?.currentUser
// Then you build up your credential using the current user current email and password :
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
// use the reauthenticate method using the credential :
currentUser?.reauthenticate(with: credential, completion: { (error) in
guard error == nil else {
return
}
// If there is no error, you're good to go
// ...Do something interesting here
})
Дополнительную информацию в документации Firebase можно найти здесь: https://firebase.google.com/docs/auth/ios/manage-users
reauthenticateWithCredential
. Это требует передачи credential
аргумента, который я не уверен, как использовать.