身為Google底下的FireBase
當然也可以輕易實現Google帳號的登入!
1.FireBase給予App的授權、2.主程式撰寫
Integrating Google Sign-In into Your Android App
1.新增SHA-1認證(SHA是一種憑證、類似實做FB登入時的hash key、詳細原理可見維基)1.1 以官方提供的憑證產生方式,在Android Studio內的終端機,輸入:
keytool -exportcert -list -v \ -alias androiddebugkey -keystore ~/.android/debug.keystore
(此為示範,請於網站內,複製自己系統的指令)
1.2 此時會要求輸入讀取金鑰的密碼,預設是"android"(鍵盤輸入時不會跳出字)
輸入完畢後,按下Enter,即會顯示結果
1.3 此處因密鑰長度關係(詳細原因仍須進一步查證),複製MD5,作為SHA-1的憑證
2. 來到FireBase的OverView,選擇連結的程式右上角,進入"設定"
2.1 來到最下方,"新增指紋",將1.1的MD5碼貼上,新增為SHA-1
以上完成第一部份的FireBase給予憑證
接著便可以來到Android Studio,撰寫App的登入功能
Authenticate Using Google Sign-In on Android
1.1 到build.gradle內,加入以下參考:
compile 'com.google.firebase:firebase-auth:11.4.2' compile 'com.google.android.gms:play-services-auth:11.4.2'
如果先前做過Email登入、FB登入功能,就無須額外加"firebase-auth"的套件了
唯一要注意"play-services-auth"版本,與原先套件版本有無衝突。
1.2 到layout.xml檔案內,新增google的signIn按鈕
2. 撰寫程式碼(大部分參考自官方說明)
2.1 以GoogleSignInOptions與GoogleApiClient物件
來連結登入API與儲存登入帳號資訊的物件
(注意:RC_SIGN_IN 的數值須自行宣告,否則執行API時會報錯找不到)
2.2 我們新增一個專門設定2.1物件的函式googleConfig(),在onCreate()狀態呼叫設定
在登入按鈕設定listener,呼應signIn()方法
同時signIn()將導向google提供的登入頁,回傳結果
2.3 覆寫onActivityResult()來接收2.2回傳結果,交給handleSignInResult()來處理
2.4 延續2.3,handleSignInResult()判斷是否登入成功,成功的話,即傳送帳戶物件
給firebaseAuthWithGoogle(),完成向firebase註冊新的使用者,同時執行updateUI()
(updateUI()參考,可見上一篇Android與FireBase(四))
3. 在onCreate()內呼叫googleConfig(),點擊登入時,便會依序合作完成功能:
googleConfig()->signIn()->onActivityResult()->handleSignInResult()->firebaseAuthWithGoogle()
編譯安裝成功後,便可以看到google的登入按鈕,點擊後可以選擇登入帳號
登入完會顯示帳號名稱、Email

同時firebase網站內的Authentication,也會新增此使用者囉!
到本篇為止,我們已經學會使用大部分的社群帳戶Provider,
以FaceBook跟Google直接作為登入帳號,已經綽綽有餘了。
至於Twitter我就不多介紹了,可以自行探討,
而GitHub則是比較偏向開發者的社群,一般應用上使用客群較少。
接著將會再探討FireBase的其他功能實作!
而各大網站也有豐富相關教學,都值得大家互相學習研究!