在发布模式下,我的Google登录无效,但在调试模式下运行正常。我从SO here得到了类似的问题,但我没有得到完美的解决方案。
我的handleSignInResult
即将到来false
- 如何解决这个问题?
答案 0 :(得分:87)
昨天同样的问题发生在我身上。
谷歌已经在playstore发布控制台发布了一项新的签名服务,谷歌将使用他的密钥库登录你的应用程序。签名后,它会为您提供一个新的SHA,您必须在您的firebase帐户中添加。答案 1 :(得分:42)
我有同样的问题,我确实阅读了一些帖子,并且能够按照以下步骤完成工作
步骤1)请转到https://console.developers.google.com/apis/credentials?
步骤2)点击创建凭据 - >选择OAuth客户端ID - >选择应用类型为Android
步骤3)然后通过在命令提示符中编写以下命令来生成签名证书指纹,之后您应该拥有密钥库及其路径
keytool -exportcert -keystore "D:\PlayStore_keystore\myproject.jks" -list -v
步骤4)点击确认后,您将被要求
Enter keystore password :
Enter password which you have used for creating keystore
步骤5)然后它将提供关于密钥库的详细信息,如 SHA1,SHA256,MD5 等。
步骤6)输入SHA1作为指纹,并提供清单文件中的包名
步骤7)点击创建您将获得新的OAuth客户端ID
步骤8)现在您已获得客户端ID,您需要获取google-services.json文件。
第9步)请转到https://console.firebase.google.com
步骤10)如果您已经拥有该包名称的项目 - >转到概述 - >单击菜单图标,其中包含了packagne名称
步骤11)选择设置goto->选项卡一般 - >将有一个名为添加指纹的选项
步骤12)在步骤5中,您已将SHA1粘贴到证书指纹中并保存
步骤13)现在下载新的google-services.json文件(因为它包含新的客户端ID,certificate_hash等)
步骤14)将google-services.json文件粘贴到Android项目的app文件夹中。
第15步)你很高兴......
答案 2 :(得分:20)
确保您遵循Guide
中指定的所有步骤。如果需要,请创建一个新的OAuth客户端,新配置文件(google-services.json
)文件,并逐步完成所有操作。
还尝试添加提供相同凭据的Web客户端。 对于Android和Web客户端,同时提供用于调试的SHA1以及发布密钥库。 在Android Studio中,在最左边你会看到一个标签,上面写着" Build Variants"。选择那里的发布模式,然后执行所有操作。
答案 3 :(得分:2)
每当您使用任何谷歌API时,您需要在您在谷歌开发者控制台中生成的应用程序上添加您的发布哈希键。您可能已经为调试添加了哈希键。
答案 4 :(得分:2)
答案 5 :(得分:1)
对于发布(又名签名)APK - 如果您只部署到Firebase,则需要为用于签名的相同密钥库文件添加SHA1该应用程序。
将SHA1成功添加到Firebase项目控制台后,获取最新的 google-services.json 并更新项目的模块本地副本。
到目前为止,我没有看到任何关于此的文档(似乎这是你需要挖掘的东西);发现它是棘手的东西。很多关于SO的答案。找到了Firebase部署解决方案。谢谢你:
在这个帖子中回答更新Google Play上的SHA1,它给了我一个想法,也许我需要修复SHA1的内容:https://stackoverflow.com/a/44307293/2162226
如何获取签名APK的SHA1:https://stackoverflow.com/a/34933381/2162226
答案 6 :(得分:1)
因为您要询问的是android的发行版本,所以我认为您已经用keystore签署了应用程序。 因此,为了获得发布应用的SHA1。
转到JDK目录中的/ bin。
并在cmd中运行以下命令。
keytool -list -v -keystore“密钥存储路径” -alias“密钥别名”
此命令将为您提供发行版本的所有必需详细信息。 复制SHA1字符串并将其添加到您的Firebase控制台。
你很好。
答案 7 :(得分:0)
如果您有两个或多个Firebase项目或Google Cloud项目,则可能存在重复的SHA1。如果在此链接中已说明了这种情况。
https://support.google.com/firebase/answer/6401008?authuser=0
答案 8 :(得分:0)
好吧,我为此苦苦挣扎,终于找到了解决方案:
首先有三个SHA1键
调试SHA1键
释放SHA1键
SHA1键签名应用程序
Here,您可以获得调试和释放键,对于第三个键,请检查HarshitG的答案。 有App签名证书,这就是密钥。
收集这三个密钥,并将其添加到firebase console中的 SHA证书指纹
下然后下载import { Http } from '@angular/http';
import { Injectable } from '@angular/core';
import {Observable} from 'rxjs';
@Injectable()
export class WebService {
constructor(private http: Http) {}
getMessages():Observable<any> {
return this.http.get('http://localhost:1234/messages').pipe(
map(x => x.json())
);
}
}
文件并将其添加到您的google-services.json
中[如果您将视图从YOUR_PROJECT_NAME/project/app/
更改为Project
,则会看到该文件]
重建,生成发行版APK并享受:)
答案 9 :(得分:0)
希望这会有所帮助。