我正在尝试使用观察器检查应用程序是否在特定的viewController中关闭,然后删除firebase用户。这应该可以,但是不会删除用户。知道为什么吗?我确定有一个用户,并且在viewDidLoad中使用TerminateApp()会删除该用户,只有在与UIApplicationWillTerminate通知一起使用时才会删除该用户。
我的代码
var currentUser = Auth.auth().currentUser
override func viewDidLoad() {
NotificationCenter.default.addObserver(self, selector: #selector(terminateApp), name: NSNotification.Name.UIApplicationWillTerminate, object: nil)
}
@objc func terminateApp() {
if let user = currentUser {
user.delete { (error) in
if let error = error {
print("There was an error deleting the user: \(error.localizedDescription)")
}
}
}
}
编辑:对我的情况有更多解释:
在“注册您的帐户VC”中,我使用Firebase auth注册具有用户名和密码的帐户。检查在这里进行。如果邮件地址存在或地址格式错误,我将显示带有标准Firebase错误描述的警报。如果地址不存在,则创建配置文件,然后转到第二个VC。
在“完成您的个人资料VC”中,不可能返回,我只希望用户完成个人资料。该配置文件保存在Firestore数据库的用户集合中。键入用户名时,将查询数据库中现有的用户名,结果将立即显示在屏幕上。如果用户存在,我会得到一个x,并且禁用了完整的注册按钮。如果用户不存在,则会显示对勾标记,并且该按钮将变为活动状态。如果按下了注册,则将在用户集合中创建用户文档,此外,用户名还将添加到用户的Auth(user.uid)
我现在想做的是在用户未完成注册过程时删除该用户。因此,请在“完成个人资料” VC中终止该应用。