所以我试图为我的应用实施google signIn。我有调试版本,发行版和所有内容的oAuth客户端ID。我还实施了Firebase。
好吧,如果我在Builder中使用DEFAULT_SIGN_IN,一切正常,但是如果我为DEFAULT_GAMES_SIGN_IN更改它,意图什么都不做(尝试弹出但它只是崩溃)并且我得到" signInResult:failed code = 12501& #34 ;.我认为这是因为意图没有说明,因为它没有正确加载。
gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
//OnClick for the sign in
private void signIn() {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
我还尝试使用我的调试密钥而不是web来提供requestIdToken。什么都没发生。
我检查了SHA-1,即application_ID,如果允许API与Google Play游戏相关联......我不知道我是否遗漏了某些东西。
答案 0 :(得分:0)
我知道我有点迟了但是如果你想使用DEFAULT_GAMES_SIGN_IN那么你必须用requestServerAuthCode替换requestIdToken并代替requestEmail你可以使用requestProfile
答案 1 :(得分:0)
我在AndroidManifest.xml文件中使用元数据
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
它可以解决12501错误