SwiftUI 和 Firebase:当前用户是否持续存在?



我正在构建一个具有firebase登录的应用程序,当我检查当前用户时,即使我启动模拟器,它也会说有当前用户。这是正确的吗?用户持久化了吗?

这里是我检查用户的地方:

var body: some View {
VStack{
if authManager.signedIn {
//Create a coordinator instance and inject it into the app
HomeTabView()
} else {
InitialView()
}
}
.onAppear{
print(authManager.signedIn)
authManager.signedIn = authManager.isSignedIn
print(authManager.signedIn)
}
}

下面是授权管理器的代码:

class authentication: ObservableObject {
//Class that will handle logging in using firebase

let auth = Auth.auth()
@Published var signedIn: Bool = false
private var firebaseLoggedIn: Bool = false
private var localLoggedIn: Bool = false
//Enabled will be triggered through the settings to allow the user the opportunity to use biometrics to login
var enabled: Bool = false

var isSignedIn: Bool {
if auth.currentUser != nil {
print (auth.currentUser?.email as Any)
}
return auth.currentUser != nil 
}

Firebase自动保存用户凭证,并在应用程序重新启动时尝试恢复它们。注意,这需要调用服务器,所以它可能不会在应用程序启动时正确完成,因此currentUser可能在那时仍然是nil

要确保在用户凭据被恢复(或被服务器拒绝,例如帐户被禁用)时收到通知,请确保在获取当前用户时使用验证状态侦听器,如文档n中的第一个代码片段所示。

最新更新