Я использую Firebase для аутентификации пользователей и хочу отображать домашний экран при успешном входе в систему. Однако моя навигационная ссылка на go в 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()
}
}