无法从设备中删除currentUser.uid

时间:2018-02-17 22:55:05

标签: ios swift firebase-authentication

Auth.auth().currentUser?.uid

无论用户是否存在作为经过身份验证的用户,此调用都会返回一个uid。我尝试从Firebase Web门户的“身份验证”部分手动删除用户,我尝试通过以下方式删除Swift中的用户:

Auth.auth().currentUser?.delete(completion: { (error) in

    print(error)
})

然后我收到此错误:

Optional(Error Domain=FIRAuthErrorDomain Code=17011 "There is no user record corresponding to this identifier. The user may have been deleted." UserInfo={NSLocalizedDescription=There is no user record corresponding to this identifier. The user may have been deleted., error_name=ERROR_USER_NOT_FOUND})

即使在删除应用程序并在设备上重建它之后,uid仍然存在。

当我移除用户时,我只需要清除uid,而对于我的生活,我无法实现它。我真的需要能够第一次使用该应用程序测试全新的设备/帐户,这对于这个持久的uid是不可能的。我在这里错过了什么步骤?

如果有帮助,我会使用匿名用户帐户执行此操作。理想情况下,我可以注册一个新的匿名帐户,并在每次从设备中删除它时看到它。

2 个答案:

答案 0 :(得分:1)

这可能是Firebase Auth iOS错误。我已经向Firebase Auth提交了一个错误。您可以做的是捕获该错误(当您尝试删除用户时)和检测到signOut用户,以便它们不再存在。

答案 1 :(得分:0)

如果您使用的是匿名用户帐户,那么您将获得一个自动生成的UID,该UID与您当前安装的应用实例相关联。您可以在docs中看到:

let isAnonymous = user!.isAnonymous  // true
let uid = user!.uid

AFAIK,您无法注销/删除匿名用户,因为没有要删除的身份验证上下文。您是否可以同时检查isAnonymousuid来解决您的问题,而不是试图依赖uid的存在?

相关问题