我想知道,从Firebase删除帐户会自动将用户退出吗?我的意思是,如果我想在删除登录屏幕后显示他,那么我只需要提供该VC?
我问这个是因为如果我喜欢这个,它会崩溃,我认为这是因为用户在这一点上不再存在。
我是对的吗?
包含一些表达式的代码:
let user = FIRAuth.auth()?.currentUser
user?.deleteWithCompletion { error in
if let error = error {
// An error happened.
} else {
try! FIRAuth.auth()!.signOut()//This is unnecessary?
let mainStoryboard: UIStoryboard = UIStoryboard(name:"Main",bundle:nil)
let WelcomeViewController: UIViewController = mainStoryboard.instantiateViewController(withIdentifier: "WelcomeViewController")
//Send the user to the WelcomeViewController
self.present(WelcomeViewController, animated: true, completion: nil)
// Account deleted.
}
}
答案 0 :(得分:4)
如果您要删除 currentUser ,则需要注意以下两点: -
删除身份验证凭据(例如: - 电子邮件密码,Facebook登录,推特等)
要删除当前用户,请使用以下功能,该功能也首先签出用户
FIRAuth.auth()?.currentUser?.delete(completion: { (err) in
print(err?.localizedDescription)
})
如果您在删除功能上进行CMD + CLICK,它将带您进入其文档: -
删除用户帐户(如果这是当前用户,还要注销用户)。
完成可选;删除帐户的请求完成或失败时调用的块。将来在主线程上异步调用。
可能的错误代码: - @c FIRAuthErrorCodeRequiresRecentLogin - 更新电子邮件是一项安全敏感操作,需要用户最近登录。此错误表示用户最近没有登录。要解决此问题,请通过在FIRUser上调用reauthenticateWithCredential:completion:来重新验证用户。
请参阅@c FIRAuthErrors以获取所有FIRUser操作通用的错误代码列表。 * /
如果收到的 错误 为零,那么您的当前用户的帐户不仅已被删除,而且还会自动退出,但您需要处理其他< strong> FIRAuthErrors ,如文档中所述