Login required for access
In order to watch this lesson, you'll need to login to the website.
Signing in with Firebase Auth
SwiftUI Firebase Real Time Chat
import SwiftUIimport Firebaseclass FirebaseManager: NSObject {        let auth: Auth        static let shared = FirebaseManager()        override init() {        FirebaseApp.configure()                self.auth = Auth.auth()                super.init()    }    }struct LoginView: View {        @State var isLoginMode = false    @State var email = ""    @State var password = ""        var body: some View {        NavigationView {            ScrollView {                                VStack(spacing: 16) {                    Picker(selection: $isLoginMode, label: Text("Picker here")) {                        Text("Login")                            .tag(true)                        Text("Create Account")                            .tag(false)                    }.pickerStyle(SegmentedPickerStyle())                                            if !isLoginMode {                        Button {                                                    } label: {                            Image(systemName: "person.fill")                                .font(.system(size: 64))                                .padding()                        }                    }                                        Group {                        TextField("Email", text: $email)                            .keyboardType(.emailAddress)                            .autocapitalization(.none)                        SecureField("Password", text: $password)                    }                    .padding(12)                    .background(Color.white)                                        Button {                        handleAction()                    } label: {                        HStack {                            Spacer()                            Text(isLoginMode ? "Log In" : "Create Account")                                .foregroundColor(.white)                                .padding(.vertical, 10)                                .font(.system(size: 14, weight: .semibold))                            Spacer()                        }.background(Color.blue)                                            }                                        Text(self.loginStatusMessage)                        .foregroundColor(.red)                }                .padding()                            }            .navigationTitle(isLoginMode ? "Log In" : "Create Account")            .background(Color(.init(white: 0, alpha: 0.05))                            .ignoresSafeArea())        }        .navigationViewStyle(StackNavigationViewStyle())    }        private func handleAction() {        if isLoginMode {//            print("Should log into Firebase with existing credentials")            loginUser()        } else {            createNewAccount()//            print("Register a new account inside of Firebase Auth and then store image in Storage somehow....")        }    }        private func loginUser() {        FirebaseManager.shared.auth.signIn(withEmail: email, password: password) { result, err in            if let err = err {                print("Failed to login user:", err)                self.loginStatusMessage = "Failed to login user: \(err)"                return            }                        print("Successfully logged in as user: \(result?.user.uid ?? "")")                        self.loginStatusMessage = "Successfully logged in as user: \(result?.user.uid ?? "")"        }    }        @State var loginStatusMessage = ""        private func createNewAccount() {        FirebaseManager.shared.auth.createUser(withEmail: email, password: password) { result, err in            if let err = err {                print("Failed to create user:", err)                self.loginStatusMessage = "Failed to create user: \(err)"                return            }                        print("Successfully created user: \(result?.user.uid ?? "")")                        self.loginStatusMessage = "Successfully created user: \(result?.user.uid ?? "")"        }    }}

Comments (0)
HELP & SUPPORT