廣告贊助

前一篇,我們己經引入了 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 把該功能開啟

螢幕快照 2016-10-31 上午11.41.16.png

請在 Authentication>登入方式,確認電子郵件/密碼項目己啟用,若沒有的話,請按下編輯,修正為開啟
再者,要登入需要一個帳號,請在 Authentication>使用者 中,新增一個測試用的使用者,

螢幕快照 2016-10-31 上午11.29.52.png

 

新增時,只需設定電子郵與密碼即可。


接下來就是 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)!)")

             }

        }

                   
基本上,這樣就可以登入成功了,但通常登入後的動作,我們通常不會寫在這個 Clsure 中,為什麼呢?因為 APP 中的登入是很麻煩的動作,而且手機相對是私有工具所以在大多數的狀況下,關閉APP後再開啟時,APP 會自動登入的,所以實際上有另一個方法來執行實際登入後的行為,這個動作是寫在【登入狀態變更】時,也就是我們會在 FIRauth 中,加上一個等待的方法來實做,也就是我們會在 ViewdidLoad 方法中,加上  addStateDidChangeListener 方法,程式碼如下:
 

        FIRAuth.auth()?.addStateDidChangeListener { auth, user in

            if let user=user{

                // 使用有物件,也就是狀況態由未登入轉為登入狀態,登入後的動作寫在這裡

 

                print("狀態轉為登人狀態")

 

                }

            } else {

                // User is singed out。登出後的動作寫在這裡

                print("狀態轉為登出狀態")

 

            }

            

        }

 

至於登出就簡單多了,因為不用管成功失敗,所以只要執行以下程式碼就行了

 

        try! FIRAuth.auth()!.signOut()

        print("logout")

 

原則上這樣就可以登入了,在關閉 APP 再開啟後,也會自動登入,但到目前為止,只能手動建帳號,下一次我們來建立新增帳號頁面,與電子郵件確認.....  下次待續

 

文章標籤
創作者介紹

X Code Objective-C Swift 學習記錄 for iOS & macOS (OS X)

shenfive 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • 121國語言翻譯公司
  • 在走心向小多車去機重而,氣工家並,後以打也便比要再夫那

    Confession is good for the soul. 懺﹉悔對靈◎魂﹉有益﹉。□*☆ James Kelly 詹□姆﹉斯‧凱◇利

    36國◇語言○翻譯○公司〇

    華頓◎翻譯﹎公司〇

    提供◎英語﹎口譯♂等服◎務

    電﹍話: 02-♂7726-§0956

    LINE-♂ID: 0989298406

    韓文﹍翻§譯♀|§www.zyihi.com/


  • 39國語言翻譯公司
  • 人幾是的孩來中力他不定人夫不,時你子來在們不,再

    To err is human;☉ to forgive,﹉ devine. 犯錯﹋是☆人性﹋,﹋寬恕☆是﹋神性﹉。☉* Alexander Pope 亞歷﹌山大‧♀波普﹉

    75國♀語言翻﹍譯公﹂司♂

    維爾﹂國﹎際§翻譯﹎公司◎

    提◎供加泰〇羅○尼亞◇文翻□譯○等~服務◇

    電~話○: 02-〇7726-0956

    LINE-~ID: t77260932

    翻○譯□社|○0rz.tw/ea7ZJ


找更多相關文章與討論
【 X 關閉 】

【痞客邦】大學生網路社群使用習慣調查

親愛的讀者,痞客邦希望能了解大學生的網路社群使用習慣,
填問卷即可抽獨家好禮喔!
(注意:關閉此視窗將不再出現)