開發環境
此篇使用Xcode版本13.0(13A233)及SwiftUI
介紹開始
延續上篇 Firebase iOS (1) 設定篇
首先先到Firebase網站點選已經產生的Demo1方案 -> 點選Authentication

Authentication -> 點選Sign-in method -> 點選電子郵件/密碼

選取取用 電子郵件/密碼 -> 按下儲存

接著到Authentication -> 點選Users -> 點選新增使用者
在電子郵件地址輸入測試用地址:test@qqemail.com(因為是測試用不需要真實存在的)
密碼輸入:Test4567 (這也是測試用)
設定好後按下新增使用者

設定好Firebase後切換到Xcode上
首先要測試此功能需要有最簡單的介面
我們需畫好介面如下圖:

到ContentView.swift加入介面
VStack {
    TextField("Email", text: $email)
    SecureField("Password", text: $password)
    Button(action: {login()}) {
        Text("Login")
    }
}
介面畫好後要加入Firebase來做驗證了
import Firebase
func login() {
    Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
        if error != nil {
            print(error?.localizedDescription ?? "")
        } else {
            print("success")
        }
    }
}
使用模擬器選擇iphone11來測試
如果成功或失敗(故意輸入錯誤密碼)會在Xcode的debug output看到success或The password is invalid or the user does not have a password.
完整程式碼如下:
ContentView.swift
import SwiftUI
import Firebase
struct ContentView: View {
    @State private var email = ""
    @State private var password = ""
    var body: some View {
        VStack {
            TextField("Email", text: $email)
            SecureField("Password", text: $password)
            Button(action: {login()}) {
                Text("Login")
            }
        }
    }
    func login() {
        Auth.auth().signIn(withEmail: email, password: password) { (result, error) in
            if error != nil {
                print(error?.localizedDescription ?? "")
            } else {
                print("success")
            }
        }
    }
}
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
到這邊登入功能已經完成了!
但是總覺得還是跟一般登入還有一些些差異?待續...


