開發環境
此篇使用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()
}
}
到這邊登入功能已經完成了!
但是總覺得還是跟一般登入還有一些些差異?待續...