Ios 当我在不注销的情况下终止应用程序时,经过身份验证的用户是否保持登录状态?
我是Firebase的新手,如果用户登录,我目前正在尝试加载应用程序。 所以根据一本书,我必须这样检查:Ios 当我在不注销的情况下终止应用程序时,经过身份验证的用户是否保持登录状态?,ios,swift,firebase,firebase-authentication,Ios,Swift,Firebase,Firebase Authentication,我是Firebase的新手,如果用户登录,我目前正在尝试加载应用程序。 所以根据一本书,我必须这样检查: if Auth.auth().currentUser?.uid == nil { //do smth } 因此,如果我没有错过什么,也没有错,它只会检查控制台的身份验证部分中的最后一个用户。我的意思是,如果我以这种方式注册用户: Auth.auth().createUser(withEmail: email, password: password) { (User, Er
if Auth.auth().currentUser?.uid == nil {
//do smth
}
因此,如果我没有错过什么,也没有错,它只会检查控制台的身份验证部分中的最后一个用户。我的意思是,如果我以这种方式注册用户:
Auth.auth().createUser(withEmail: email, password: password) { (User, Error) in
if Error != nil {
print(Error)
return
}
只要终止我的应用程序,在我的检查过程中,它将只看到最后注册的用户。在检测到该登录用户后,如果我注销,则在下一个检查过程中,应用程序将不会看到其余已登录用户。
所以看起来:
我运行应用程序,然后创建用户多次创建,然后终止应用程序,然后再次创建,然后终止应用程序,然后再返回
然后在步骤1之后,检查用户是否登录。这是我不知道的最后一个用户还是第一个用户,因为我没有找到它的详细信息
if Auth.auth().currentUser?.uid == nil {
//do sign out
do {
try Auth.auth().signOut()
} catch let logoutError {
print(logoutError)
}
}
它找到已登录的用户,然后我签出该用户
我终止应用程序。
我再次运行此应用程序,在对登录用户进行初始检查时,未找到任何用户
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(handleLogout))
//user is not logged in
if Auth.auth().currentUser?.uid == nil {
signOut()
}
}
为什么??我的意思是,我没有亲自注销其余注册用户,我知道在调用createUser func时,这个createUser func也会登录用户
如果我创建新应用程序,应用程序可能会注销用户?那么为什么我没有找到任何关于这种行为的信息呢?如果有人有任何线索,我将不胜感激 Firebase身份验证用户保持登录状态,直到: 要么您的代码显式地签出它们 或者在同一设备上的同一应用程序中创建另一个用户 或者直到发生要求他们再次登录的事件(如密码更改)
单个设备上的单个应用程序只能有一个登录用户。如果您在同一设备上登录或创建另一个用户,以前的用户将被注销。我不确定是否理解您的问题。在步骤3中,您说您注销了用户。在这种情况下,步骤5中的行为在我看来似乎是正确的。@FrankvanPuffelen我只签出一个用户而不是其余的用户,并且根据您关于Firebase身份验证的回答,用户保持登录。用户应该登录,但是Auth.Auth.currentUser?.uid找不到为什么?我没有注销。对不起,我还是不明白。我扩展了我对系统工作原理的回答,希望它能有所帮助。除此之外:我希望其他人能够理解您描述的行为,并能提供帮助。@N.Khasanov用户不应注销。viewDidLoad:方法是否为rootViewController?或者您在AppDelegate.m中初始化了它的实例?我的意思是,您是否检查了viewDidLoad:函数在您的应用程序IDFinishLaunching:事件之前没有调用,您在该事件中配置了firebase?@N.Khasanov您说我只签出一个用户,而不是Auth.Auth只维护最后一个和单个用户,因此如果您签出最后一个用户,您将一无所获。不获取其他用户您没有多个用户要注销。