我正在尝试删除已使用Twitter登录/验证的用户帐户 ->从Firebase身份验证中删除它。
当他按下按钮时,将执行此代码。我设法再次登录并从Twitter捕获了用户名/用户ID,但仍然收到此消息:
错误:错误域= FIRAuthErrorDomain代码= 17014“此操作敏感,需要最近的身份验证。重试此请求之前,请再次登录。 UserInfo = {NSLocalizedDescription =此操作敏感,需要最近的身份验证。重试此请求之前,请再次登录。,error_name = ERROR_REQUIRES_RECENT_LOGIN} 可选(“此操作敏感,需要最近的身份验证。重试此请求之前,请再次登录。”)
TWTRTwitter.sharedInstance().logIn(completion: { (session, error) in
if (session != nil) {
print("signed in as \(session?.userName)");
print("signed in as \(session?.userID)");
let user = Auth.auth().currentUser
user?.delete { error in
if let error = error {
// An error happened.
print("error: \(error)")
} else {
print("deleted")
}
}
Auth.auth().currentUser?.delete(completion: { (err) in
print(err?.localizedDescription)
})
} else {
print ("session is nil")
}
})
如何从代码中删除用户的Auth帐户? (不支持云功能)?
谢谢
答案 0 :(得分:0)
我不知道直接咨询Auth.auth()时用户迷路的原因。当前用户?但是,正确的做法是使用“完成”结果带来的会话变量。在此示例中,我正在使用电话号码进行身份验证,但它与电话号码相同。
let credential = PhoneAuthProvider.provider().credential(
withVerificationID: "some string",
verificationCode: "some string")
Auth.auth().signInAndRetrieveData(with: credential) { (authResult, error) in
if error != nil {
//do something
}
authResult?.user.delete(completion: { _ in
//do something...
})
}
在代码中,您必须从会话变量中调用delete方法。