我正在尝试在没有 Firebase 的情况下为我的应用程序实现 google 登录。 我似乎已经完成了文档中建议的所有步骤以及其他答案,但我仍然不断收到此错误:
Google 登录错误:PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException:10:,空,空)
采取的步骤:
--
在应用程序/build.gradle中
signingConfigs {
debug {
keyAlias 'androiddebugkey'
keyPassword '*****'
storeFile file('mykey.jks')
storePassword '*****'
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
}
dependencies {
implementation 'com.google.android.gms:play-services-auth:20.7.0'
}
在 android/build.gradle
allprojects {
repositories {
google()
mavenCentral()
}
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.3.10'
}
}
}
Flutter登录.dart
class LoginAPI {
static final _googleSignIn = GoogleSignIn();
static Future<GoogleSignInAccount?> login() => _googleSignIn.signIn();
static Future signOut = _googleSignIn.signOut();
}
onPressed: () async {
var user = await LoginAPI.login();
print('user.....');
print(user);
},
我做错了什么?我还缺少其他步骤吗?
注意:我在没有 Firebase 的情况下实现 Google 登录,因为我们还有一个 api 来处理登录。 所以
google-services.json
还没有被添加。
这篇文章中的任何解决方案:https://stackoverflow.com/questions/54557479/flutter-and-google-sign-in-plugin-platformexceptionsign-in-failed-com-google 出于同样的原因,没有帮助解决当前的问题。 已采取任何不涉及 firebase 且与当前实施相关的其他步骤。
发现了这个问题- 这是因为密钥 SHA-1 密钥不正确。 对于那些在没有 Firebase 的情况下实现 google 登录的人:
flutter doctor -v
它将返回java bin库路径: Java 二进制文件位于:C:\Program Files\Android\Android Studio\jbr in\java
keytool -genkey -v -keystore '<path\wher\you\want\to\create\it\file_name.jks> -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias 'your_alias'
创建文件后,根据要求添加详细信息 - 转到该路径。
将文件移动到项目的“android/app/”文件夹
keytool -list -v -keystore <path\to\your\jks\file>
输入您的密码:
复制返回的 SHA-1 密钥(我们将使用此密钥)
Google 登录应该按预期工作。