App 在发布到play商店后 Firebase Authentication 无法登入问题解决

身为一个App的开发新手常常会遇到一些莫名其妙又难以解决的问题,直到找到问题答案才发现根本是自己愚蠢的错误造成的,往往也因此耗费了大量的时间和精力来解决问题,这边就来记录一下我遇到的愚蠢问题吧,希望也能帮助到有跟我遇到相同问题的人,以节省找答案的时间。

这是我开发的第二个app初次尝试使用Friebase的Authentication 和 Realtime Database功能,简单来说就是能利用第三方登入功能来实现用户资料的储存,要能够连结Firebase与应用必须先在Firebase专案设定中新增SHA凭证指纹
http://img2.58codes.com/2024/20136380bgA2Ho1xCH.jpg

其中分为debug版和release版,debug版是我们在测试程式运行时会用到的,也就是在android studio中点击运行后会直接在虚拟机执行的版本,这个SHA凭证指纹可以直接在android studio 种取得,点击右侧的Gradle>你的专案名称>Tasks>android>signingReport 在下方的视窗即可找到。
http://img2.58codes.com/2024/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)
http://img2.58codes.com/2024/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专案前,先修改专案名称可以省去很多麻烦事,我的经验分享给大家,希望可以帮助到遇到相同问题的人。

有任何新的消息会再更新这篇文章


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章