【发布时间】:2021-03-21 07:31:53
【问题描述】:
我正在制作一个应用程序,用户可以在其中登录,无论他们的电子邮件是否经过验证。但是,如果他们的电子邮件未经过验证,他们将只能访问一个页面,如果经过验证,他们将可以访问整个应用程序 (AppView)。
到目前为止,使用我拥有的代码,我能够创建一个用户并让他们登录,让他们可以访问完整的应用程序。但如果他们的电子邮件未经过验证,我不确定如何显示其他视图。
这是我检查用户是否登录的代码:
func listen () {
// monitor authentication changes using firebase
handle = Auth.auth().addStateDidChangeListener { (auth, user) in
if let user = user {
// if we have a user, create a new user model
print("Got user: \(user)")
self.isLoggedIn = true
self.session = User(
uid: user.uid,
displayName: user.displayName, email: "")
} else {
// if we don't have a user, set our session to nil
self.isLoggedIn = false
self.session = nil
}
}
}
我在这里选择它应该显示的视图:
struct ContentView: View {
@EnvironmentObject var session: SessionStore
func getUser () {
session.listen()
}
var body: some View {
Group {
if (session.session != nil) {
// I need to check here if the user is verified or not
AppView() //full application view
} else {
OnBoardingView()
}
}.onAppear(perform: getUser)
}
}
【问题讨论】:
标签: swift firebase firebase-authentication swiftui