调用delete()删除Firebase匿名用户时抛出FirebaseAuthRecentLoginRequiredException的解决方法
解决Firebase匿名用户删除时的
FirebaseAuthRecentLoginRequiredException问题 针对Firebase BOM 30.3.2版本中删除匿名用户时出现的异常,可通过以下方案解决:
- 核心逻辑:匿名用户无需凭证即可重新登录,重新执行匿名登录操作会刷新会话的登录状态,满足Firebase对敏感操作的“最近登录”安全校验要求
- 具体实现代码(Kotlin):
val firebaseAuth = FirebaseAuth.getInstance() if (firebaseAuth.currentUser?.isAnonymous == true) { firebaseAuth.signInAnonymously() .addOnCompleteListener { signInTask -> if (signInTask.isSuccessful) { // 重新登录完成,执行删除操作 firebaseAuth.currentUser?.delete() ?.addOnCompleteListener { deleteTask -> if (deleteTask.isSuccessful) { // 匿名用户删除成功 } else { // 处理删除失败的异常 val exception = deleteTask.exception // 可根据异常类型做对应处理 } } } else { // 处理重新匿名登录失败的异常 val exception = signInTask.exception } } }
补充说明
匿名用户的身份基于设备标识,重新调用signInAnonymously()不会创建新的匿名用户,而是复用当前用户的会话并更新登录时间戳,以此通过Firebase的安全校验,避免抛出FirebaseAuthRecentLoginRequiredException异常。
内容的提问来源于stack exchange,提问作者Androidew1267
相关产品推荐
相关产品推荐

