我正在使用Firebase对用户进行身份验证,并希望在成功登录后显示主屏幕。但是,当按下“登录”按钮时,不会触发我转到LandingPageView的导航链接。我希望新视图以模态显示,而不是在导航堆栈中显示,这样您就无法通过导航按钮登录时导航回到主屏幕,而必须主动注销。这是我的代码
import SwiftUI
import FirebaseAuth
struct ContentView: View {
@State var email: String = ""
@State var passsword: String = ""
@State var goToHome: Bool = false
var body: some View {
NavigationView {
ZStack{
Color(.systemGreen).edgesIgnoringSafeArea(.all)
VStack {
Text("Chat App").font(Font.custom("Pacifico-regular", size: 40))
Spacer()
VStack {
Text("Email: ").font(.body)
TextField("Enter your email", text: $email).textFieldStyle(RoundedBorderTextFieldStyle())
.padding(.horizontal)
}
VStack {
Text("Password: ")
TextField("Enter your password", text: $passsword)
.textFieldStyle(RoundedBorderTextFieldStyle())
.padding(.horizontal)
}
Button(action: {
Auth.auth().signIn(withEmail: self.email, password: self.passsword) { (result, error) in
if error != nil {
print("ERROR \(error!)")
} else {
print("SIGNED IN USER")
self.goToHome = true
NavigationLink(destination:
LandingPageView(), isActive: self.$goToHome) {
Text("")
}.hidden()
}
}
}) {
Text("Login")
}
NavigationLink(destination: SignUpView()) {
Text("Sign Up")
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
更像这样:
var body: some View {
ZStack {
if Auth.auth().currentUser = nil
// Your LogIn-View
} else {
LandingPageView()
}
}