iT邦幫忙

0

App 在發佈到play商店後 Firebase Authentication 無法登入問題解決

身為一個App的開發新手常常會遇到一些莫名其妙又難以解決的問題,直到找到問題答案才發現根本是自己愚蠢的錯誤造成的,往往也因此耗費了大量的時間和精力來解決問題,這邊就來記錄一下我遇到的愚蠢問題吧,希望也能幫助到有跟我遇到相同問題的人,以節省找答案的時間。

這是我開發的第二個app初次嘗試使用Friebase的Authentication 和 Realtime Database功能,簡單來說就是能利用第三方登入功能來實現用戶資料的儲存,要能夠連結Firebase與應用必須先在Firebase專案設定中新增SHA憑證指紋
https://ithelp.ithome.com.tw/upload/images/20210503/20136380bgA2Ho1xCH.jpg

其中分為debug版和release版,debug版是我們在測試程式運行時會用到的,也就是在android studio中點擊運行後會直接在虛擬機執行的版本,這個SHA憑證指紋可以直接在android studio 種取得,點擊右側的Gradle>你的專案名稱>Tasks>android>signingReport 在下方的視窗即可找到。
https://ithelp.ithome.com.tw/upload/images/20210503/20136380WeshqNVHvO.jpg
而release版則是在你輸出不論是apk或aab檔後產生金鑰後利用cmd讀取來取得,這邊也寫一下詳細步驟。先假設你已經完成輸出並建立金鑰(不然這篇可能永遠寫不完QQ),首先先找到java keytool的位置,我的位置在C:\Program Files\Java\jdk1.8.0_281\bin通常位置都是相同的但jdk版本可能會不同,開啟cmd,輸入cd/d 你的keytool位置接著輸入keytool -list -v -keystore 你輸出jks檔的位置就可以找到release版的SHA憑證指紋囉。

經過測試後release版跟debug版都能正常運行,接著就興高采烈的發佈了應用程式,經過幾天的審核終於上架了,興奮的下載來使用後卻發現竟然無法登入,眼淚直接掉出來,趕緊上網查資料找解答,原來是發佈後還需要在firebase中新增一個應用程式簽署金鑰憑證SHA憑證指紋,要找到這個指紋也很簡單,首先登入Google Play Concole,找到你的App,左側的設定>應用程式完整性,就可以找到囉。(參考:https://stackoverflow.com/questions/39318370/google-sign-in-not-working-after-publishing-in-play-store)
https://ithelp.ithome.com.tw/upload/images/20210503/20136380HdQDobGpox.jpg

這下應該沒問題了吧,懷著忐忑的心情再次開啟App,緊張的按下了登入,結果竟然還是不行,當場崩潰在電腦桌前,但是問題還是得解決,立馬上網繼續爬文,最後終於讓我找到問題點了,問題在於我在應用發佈前都沒有去修改應用程式的ID,而發佈時曾出現"「com.example」受到限制,請選用其他套件名稱。"的提醒。當時時的解決方法是直接進build.gradle中修改applicationId並繼續上傳,殊不知更改applicationId會使firebase與應用程式間的連結斷開,以至於整個firebase的功能都無法使用,而這個問題就沒那麼好解決了,因為firebase中的套件名稱無法直接修改,必須重新建立一個新的應用程式,我的作法如下:
1.刪除firebase中的應用程式(不要刪除project
2.移除android studio中的google-services.json文件
3.關閉android studio
4.重新開啟android studio利用tool>firebase重新建立連結
5.在Play商店發佈新版本
(參考:https://stackoverflow.com/questions/46260799/how-to-change-the-package-name-of-an-app-in-android-studio-linked-to-firebase)

所以在建立一個新的android專案前,先修改專案名稱可以省去很多麻煩事,我的經驗分享給大家,希望可以幫助到遇到相同問題的人。

有任何新的消息會再更新這篇文章


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言