Android與FireBase(二)Authentication-Email登入實作

使用FireBase開發APP

以登入功能為例
其實在Android Studio內->Tool->FireBase->Authentication
早已詳列每個步驟、每個功能應注意事項
甚至提供API使用的範例程式碼
對於物件、方法理解上,真是相當貼心!

今天討論FireBase的登入功能,本文參考自:
https://litotom.com/2016/11/21/as_222_firebase_email/

設定好可登入帳戶後,即可使用
(雖然帳戶沒有審核,可以用非法帳號,
但是來到忘記密碼、收信時,使用者便會出問題囉!)

一樣我們在MainActivity.java內,寫一個方法
新增一個設定/取得帳戶的物、以及設定一個監聽器


Activity的生命週期

本方法應在onCreate()中呼叫,進行設定
隨後在onStart()中,加入:
auth.addAuthStateListener(authStateListener);
開始進行監聽,監聽器被加入後,即開啟功能

發現使用者未登入,進入LoginActivity頁面
(要注意的是REQUEST_LOGIN,是需要自行定義/宣告的常數數值)
此處以startActivityForResult導入頁面,是為了取得登入成功與否結果,
關於頁面切換方法有二:startActivityForResult、startActivity
介紹可參考此網頁:
http://hatsukiakio.blogspot.tw/2009/06/startactivitystartactivityforresult.html

當我們順利來到LoginActivity頁面時
只要用"登入按鈕",讓輸入的帳號密碼經FireBase判斷是否正確
正確的話,以
setResult(RESULT_OK);finish();
此頁面便會回傳RESULT_OK訊息回到MainActivity
然後關閉,按鈕觸發方法步驟如下


入門者需注意:LoginActivity頁面的xml設計,
輸入欄位元件需要使用android.support.design.widget.TextInputLayout類別
xml內元件如下:

同時記得在build.gradle內的dependencies
加入compile 'com.android.support:design:26.+'(版本26,依開發版本而定)

有了介面跟以上code便能仰賴google強大的後端,擁有會員登入系統囉!!