Я борюсь с проблемой повторной аутентификации пользователя с помощью ссылки на электронную почту firebase. Я не могу удалить учетную запись пользователя.
Процесс выглядит следующим образом:
- Пользователь создает учетную запись путем добавления адреса электронной почты
- Ссылка успешно отправлена на электронную почту
- Работает универсальная ссылка
- Аутентификация нажатием на ссылку работает
- Учетная запись пользователя создается в Firebase
- Сохранение этой ссылки на
UserDefaults
работает - Удаление учетной записи при повторной аутентификации пользователь не работает ...
выдает ошибку:
Это код для удаления учетной записи пользователя :
func deleteAccount() {
// Create progres HUD
let hud = JGProgressHUD(style: .dark)
hud.textLabel.text = NSLocalizedString("Deleting Account", comment: "")
hud.show(in: self.view)
// #1 Create firebase credential to re-authenticate user
let currentUser = Auth.auth().currentUser
guard let email = Auth.auth().currentUser?.email else {return}
let link = UserDefaults.standard.string(forKey: "Link")
let credential = EmailAuthProvider.credential(withEmail: email, link: link!)
// #2 Re-authenticate user
currentUser?.reauthenticate(with: credential, completion: { (result, error) in
// #3 if there is no error, remove user from database
if error == nil {
currentUser?.delete(completion: { (error) in
guard let userID = currentUser?.uid else {return }
let ref = Database.database().reference()
ref.child("User").child(userID).removeValue()
if error == nil{
hud.dismiss()
self.delegate?.deletePinAnnotation(email: email)
self.navigationController?.popViewController(animated: true)
} else {
print(error.debugDescription)
}
} else { // #4 If error when re-authenticate user occurs
print(error.debugDescription)
}
hud.dismiss()
}