前一篇,我們己經引入了 SDK,接下來,要做的事情是帳號密碼認證。若還沒看過,請先參考前篇完成引入SDK 的部份
http://shenfive.pixnet.net/blog/post/220664811-%E4%BD%BF%E7%94%A8-firebase--with-swift%2c--%EF%BC%881-%29%EF%BC%8C%E7%B0%A1%E4%BB%8B%E8%88%87%E5%AE%89%E8%A3%9Dsdk
我們要在這兒做幾個事情:
1. 新建立帳號,使用電子郵件與密碼,並進行電子郵件確認使用者
2. 使用電子郵件與密碼登入,並確認是否有經過電子郵件認證
3. 忘記密碼電子郵件重設
所以我建立了 3 個 View Controller, 分別設定為 loginViewController
第一件事情是到 Firebase Consol 把該功能開啟
請在 Authentication>登入方式,確認電子郵件/密碼項目己啟用,若沒有的話,請按下編輯,修正為開啟
再者,要登入需要一個帳號,請在 Authentication>使用者 中,新增一個測試用的使用者,
新增時,只需設定電子郵與密碼即可。
接下來就是 APP 端了
Firebase 都是使用 FIRatuth 這個 物件來操作,這個物件可以使用 FIRAuth.auth()? 即可取得物件後操作了。
首先建立一個 ViewController 叫 LoginViewController,其中至少要有輸入帳號密碼的部份,當然,最好事檢查帳號密碼格式,
預設的狀況下,帳號必需是 Email 格式,密碼至少六碼,實際要執行的動作也很簡單,只要 import Firbase 之後對 auth 物件作 singIn 方法就可以了,語法如下:
// 程式碼:引入 Firebase
import Firebase
// 程式碼試登入,假設帳號為 theAccount , 密碼為 thePassword 兩個變數
FIRAuth.auth()?.signIn(withEmail: theAccount, password: thePassword){(user,error) in
if( user != nil ){
print("登人驗證成功")
}else{
print("無法登入,錯誤訊息為:\n\((error?.localizedDescription)!)")
}
}
FIRAuth.auth()?.addStateDidChangeListener { auth, user in
if let user=user{
// 使用有物件,也就是狀況態由未登入轉為登入狀態,登入後的動作寫在這裡
print("狀態轉為登人狀態")
}
} else {
// User is singed out。登出後的動作寫在這裡
print("狀態轉為登出狀態")
}
}
至於登出就簡單多了,因為不用管成功失敗,所以只要執行以下程式碼就行了
try! FIRAuth.auth()!.signOut()
print("logout")
原則上這樣就可以登入了,在關閉 APP 再開啟後,也會自動登入,但到目前為止,只能手動建帳號,下一次我們來建立新增帳號頁面,與電子郵件確認..... 下次待續