FIRAuthErrorDomain Code=17014从firebase身份验证b/c删除时出错未重新登录到我的iOS应用程序(swift)?
我正在构建一个应用程序,它使用firebase auth(和firestore数据库),但只使用facebook登录 用户只需使用我的应用程序登录一次,从那时起,当他们继续打开我检查的应用程序时FIRAuthErrorDomain Code=17014从firebase身份验证b/c删除时出错未重新登录到我的iOS应用程序(swift)?,swift,firebase-authentication,Swift,Firebase Authentication,我正在构建一个应用程序,它使用firebase auth(和firestore数据库),但只使用facebook登录 用户只需使用我的应用程序登录一次,从那时起,当他们继续打开我检查的应用程序时 if Auth.auth().currentUser != nil { } 因此,如果已经有一个登录的用户,那么我不会让他们重新登录 但当他们想从应用程序中删除帐户时,会弹出错误消息: Error Domain=FIRAuthErrorDomain Code=17014 "This oper
if Auth.auth().currentUser != nil
{
}
因此,如果已经有一个登录的用户,那么我不会让他们重新登录
但当他们想从应用程序中删除帐户时,会弹出错误消息:
Error Domain=FIRAuthErrorDomain Code=17014 "This operation is sensitive and requires recent authentication. Log in again before retrying this request." UserInfo={NSLocalizedDescription=This operation is sensitive and requires recent authentication. Log in again before retrying this request., error_name=ERROR_REQUIRES_RECENT_LOGIN}
我真的需要让用户再次登录吗?因为这意味着我必须让他们重新登录facebook,并将他们发送回fb的页面,这样他们就可以删除他们的帐户,这似乎有些过分了。是否有一个令牌我可以返回以确认登录
这可能是一个单独的问题…但当我直接从firebase控制台删除用户时,系统中没有留下任何用户,我从客户端上的应用程序中非常确定
Auth.Auth().currentUser不是nil,仍然包含我删除的用户帐户的uid。不完全清楚这是为什么
谢谢。这是出于安全考虑。重新验证是一项敏感的操作。与您尝试更新密码(您需要输入旧密码)、更新电子邮件、更新信用卡、电子商务应用程序的发货地址等时相同。这可能不方便,但对用户的安全来说是必要的。 为了获得良好的实践,您应该强制执行这一点。但是,如果需要从服务器中删除用户,则始终可以使用Admin SDK
Admin.auth().deleteUser(uid)
API:
另外,您需要重新加载用户,或者尝试刷新令牌getIDToken
,以强制它检测用户的删除