[解決済み] Google サインインに失敗しました com.google.android.gms.common.api.ApiException: 10:
2023-07-01 16:56:19
質問
このイライラする問題で行き詰っています。 私はFirebaseのGoogle Authの初心者ですが、Firebaseのドキュメントに記載されているGoogle SignIn Authの統合方法をすべて実行しましたが、コンソールで2つの部分からなるこの奇妙なエラーを受け取っています。
12-03 11:07:40.090 2574-3478/com.google.android.gms E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE
で、さらに
Google sign in failed com.google.android.gms.common.api.ApiException: 10:
誰もが以前にスタックオーバーフローで尋ねられた類似の質問を指摘しようとする前に、ここで私はすべての利用可能な解決策を見て、まだエラーが解決されていない後、今まで何をしたのかである。
- 私は私のプロジェクトのための私のSHA1フィンガープリントを持っています。
- 私はOAuth 2.0クライアントIDを持っています。アンドロイドクライアントとウェブクライアントの両方で、requestIdToken()の中で私は ウェブクライアントID .
- 私が行ったのは ではない 私のプロジェクトのAPKをgoogle play storeで公開しました。これは、私が誤って別のSHA1フィンガープリントを生成しなかったことを意味します。
- Google Sign in Auth firebase docsのステップバイステップに従いました。
ここに私のコードスニペットがあります。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
ButterKnife.bind(this);
String webClientId = getString(R.string.web_client_id);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(webClientId)
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
googleLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try{
GoogleSignInAccount account = task.getResult(ApiException.class);
firebaseAuthWithGoogle(account);
} catch (ApiException e) {
// Google Sign In failed, update UI appropriately
Log.w(TAG, "Google sign in failed", e);
// [START_EXCLUDE]
Toast.makeText(this, "Gooogle Auth failed", Toast.LENGTH_LONG);
// [END_EXCLUDE]
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId());
// [START_EXCLUDE silent]
//showProgressDialog();
// [END_EXCLUDE]
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = mAuth.getCurrentUser();
Toast.makeText(LoginActivity.this, "Successful Auth", Toast.LENGTH_LONG).show();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
//updateUI(null);
}
// [START_EXCLUDE]
//hideProgressDialog();
// [END_EXCLUDE]
}
});
}
どのように解決するのですか?
基本的に問題は
SHA1
のキーにあります。これを再生成して、同じプロジェクトにもう一度正しく配置してください。
1) 回答にあるように、実際に署名されたAndroidの
apk
が同じであることを確認してください。
SHA1
フィンガープリントは、Firebase プロジェクトの Android インテグレーションセクションのコンソールで指定したものと同じです (このページで
google-services.json
)
2)その上で、firebaseプロジェクトの設定(左上のOverviewの右側にある歯車アイコン)を開きます。そして、Account Linkingタブに切り替えます。そのタブで、Google Playをプロジェクトにリンクさせます。
EDIT アカウントリンクのタブはもう存在せず、代わりに:
- Firebaseにサインインします。
- 設定]アイコンをクリックし、[プロジェクト設定]を選択します。
- 統合]タブをクリックします。
-
Google Play カードで
Link
.
関連
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] Android - タイトルバーに戻るボタンが表示される
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] DialogFragmentを正しく終了させるには?
-
[解決済み] 通知をクリックした後にアプリケーションを開く
-
[解決済み] 文字サイズとアンドロイドの画面サイズの違い
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] edittextのテキストがメールアドレスかどうかを確認するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Android StudioのデバッグモードでSHA-1フィンガープリント証明書を取得する方法を教えてください。
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] 「KotlinとAndroidで「パラメータTを推測するのに十分な情報がありません。
-
[解決済み] Androidのadb logcatでTAG名で特定のメッセージを除外する方法は?
-
[解決済み] AndroidでTextViewの下にアンダーラインを引くには
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] <string> XMLで改行やタブを作るには(eclipse/android)?
-
[解決済み] Flutter/React-Native/Android-Native アプリの SHA-1 を生成する