https://console.firebase.google.com/
ContentView.swift
//
// ContentView.swift
// DevSwiftUI
//
// Created by Cairocoders
//
import SwiftUI
import Firebase
struct ContentView: 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)
.cornerRadius(10)
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)
}.cornerRadius(10)
Text(self.loginStatusMessage)
}
.padding()
}
.navigationTitle(isLoginMode ? "Log In" : "Create Account")
.background(
LinearGradient(gradient: Gradient(colors: [.yellow, .green]), startPoint: .top, endPoint: .bottom)
.edgesIgnoringSafeArea(.all))
}
}
private func handleAction() {
if isLoginMode {
loginUser()
} else {
createNewAccount()
}
}
private func loginUser() {
Auth.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() {
Auth.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 ?? "")"
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
DevSwiftUIApp.swift
//
// DevSwiftUIApp.swift
// DevSwiftUI
//
// Created by Cairocoders
//
import SwiftUI
import Firebase
@main
struct DevSwiftUIApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
class AppDelegate: NSObject,UIApplicationDelegate{
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
FirebaseApp.configure()
return true
}
}