Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift如何使用Firebase Auth在应用程序关闭时注销用户_Ios_Swift_Firebase Authentication_Google Cloud Firestore - Fatal编程技术网

Ios Swift如何使用Firebase Auth在应用程序关闭时注销用户

Ios Swift如何使用Firebase Auth在应用程序关闭时注销用户,ios,swift,firebase-authentication,google-cloud-firestore,Ios,Swift,Firebase Authentication,Google Cloud Firestore,以下是用户浏览我的应用程序的方式: 输入电话号码 输入验证号(这允许他们访问我的Firestore) 输入用户名 现在它们在主应用程序中 不过问题很简单,如果应用程序在输入用户名时崩溃(无论出于何种原因)或关闭,他们仍然会在技术上登录到我的Firestore 这是一个问题,因为我对应用程序进行了编程,当用户重新打开应用程序时,他们会立即进入主屏幕(我创建了一个应用程序管理器来处理这个问题)。如果他们在输入用户名之前关闭应用程序(或者如果它崩溃),他们可以直接进入主屏幕而不输入用户名 我在appl

以下是用户浏览我的应用程序的方式:

  • 输入电话号码
  • 输入验证号(这允许他们访问我的Firestore)
  • 输入用户名
  • 现在它们在主应用程序中
  • 不过问题很简单,如果应用程序在输入用户名时崩溃(无论出于何种原因)或关闭,他们仍然会在技术上登录到我的Firestore

    这是一个问题,因为我对应用程序进行了编程,当用户重新打开应用程序时,他们会立即进入主屏幕(我创建了一个应用程序管理器来处理这个问题)。如果他们在输入用户名之前关闭应用程序(或者如果它崩溃),他们可以直接进入主屏幕而不输入用户名

    我在applicationWillTerminate方法中进行了几次不同的尝试,以跟踪用户所在的视图控制器,注销,这样当用户再次打开应用时,我的应用程序管理器会显示Auth.Auth().currentUser==nil,并转到初始视图控制器以再次启动注册过程

    var viewController : UIViewController?
            var vc = UsernameViewController()
    
            if viewController == vc {
    
                let firebaseAuth = Auth.auth()
                            do {
                                try firebaseAuth.signOut()
                            } catch let signOutError as NSError {
                                print ("Error signing out: %@", signOutError)
                            }
    
    
    我希望由于应用程序关闭或崩溃而没有机会创建用户名的用户返回到初始视图控制器,而不是应用程序的主屏幕


    <>我现在正经历着相反的情况。

    你是否考虑在重新启动时检测到不完整的用户配置文件,并将它们带到允许他们输入用户名的屏幕上?这似乎是一个更好的用户体验,然后让他们从头开始。你完全正确!我解决了这个问题,并且能够实现你的想法。所以我做的是,我有一个空白的视图控制器,它决定了我的应用程序应该显示什么屏幕。在它的类中,我在:uniqueUsers/{specific user uid}中获得实时更新,我有两个bool字段:一个检查电话号码是否创建,另一个检查用户名是否创建。我设置了一些if条件来检查用户登录状态、用户名状态等。。并使用故事板。实例化EviewController(标识符为:“ExampleController”)用于每个条件。只是一个提示。。我让一切正常,5分钟后,似乎我所有的问题都回来了。据downdetector.com显示,谷歌已经关机,我的应用程序无法访问Firestore。这种情况可能很少发生在任何人身上,但你永远不会知道。太平洋时间上午11:50左右,谷歌的许多云服务开始出现网络中断。从下午12:40左右开始,一些服务似乎已经恢复。密切关注Firebase状态页面的更新:可以;谢谢你的链接