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是不可能的。我在这里错过了什么步骤?
如果有帮助,我会使用匿名用户帐户执行此操作。理想情况下,我可以注册一个新的匿名帐户,并在每次从设备中删除它时看到它。
答案 0 :(得分:1)
这可能是Firebase Auth iOS错误。我已经向Firebase Auth提交了一个错误。您可以做的是捕获该错误(当您尝试删除用户时)和检测到signOut
用户,以便它们不再存在。
答案 1 :(得分:0)
如果您使用的是匿名用户帐户,那么您将获得一个自动生成的UID,该UID与您当前安装的应用实例相关联。您可以在docs中看到:
let isAnonymous = user!.isAnonymous // true
let uid = user!.uid
AFAIK,您无法注销/删除匿名用户,因为没有要删除的身份验证上下文。您是否可以同时检查isAnonymous
和uid
来解决您的问题,而不是试图依赖uid
的存在?