private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class); //exception is here
// Signed in successfully, show authenticated UI.
System.out.println("google token ---> " + account.getIdToken());
} catch (ApiException e) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information about this error.
e.printStackTrace();
}
}
Firebase
を使用しており、debug app
を試してみる場合:
1。まず、SHA-1
デバッグキーを取得します:
Gradle
をクリックします(右側のパネルから、Gradleバーが表示されます)Tasks
をクリックしますAndroid
をクリックしますsigningReport
をダブルクリックします(SHA-1
およびMD5
を取得します)2。 APIコンソールに新しい資格情報を追加します
OAuth Client ID
を作成Android client (for debug)
(例)SHA-1
デバッグキー3。キーをFirebase
プロジェクトに追加します:
Project settings
-> SHA certificate fingerprints
->デバッグアプリのSHA-1
キーに移動します。
その後、Androidプロジェクトのgoogle-services.json
ファイルを更新できます。
それは私のために働いています。
このステータスコードは、不明なサーバークライアントIDを提供していることを意味します。 https://console.developers.google.com/apis/credentials では、プロジェクトでOAuthクライアントID-> Webアプリケーションを使用してこのWebアプリケーションを使用する必要があります。 AndroidアプリのクライアントID。
これらの手順を使用してこの問題を解決しました。
1)。 Goto https://console.developers.google.com/ を作成し、(Androidクライアント)が作成されている場合は削除します。
2)。資格情報の作成をクリックし、OAuthClientIDをクリックしてAndroidを選択します
3)。 SHA 1個の指紋をコピーして貼り付けます
4)。パッケージ名を入力して保存します
5)。 console.firebase.comに移動します
6)。 google-service.jsonをダウンロードして、プロジェクト内のappディレクトリに移動します
7)。 google-service.jsonを開き、クライアントIDタイプ3を見つけて、default_web_client_idとして使用します
8)。アプリを実行する
この行を削除すると動作します:
System.out.println("google token ---> " + account.getIdToken());
これは、idTokenへのリクエストがないためです。
.requestIdToken(getString(R.string.google_app_id))
app_id
の値は「OAuthクライアントID-> Webアプリケーション」です
ApiExceptionエラーコード10は開発者エラーです。 firebaseアプリが適切に設定されていない場合、このエラーが発生します。 1つの確実なケースは、Google SigninでFirebase認証を使用するときに、AndroidアプリにSHA1フィンガープリントを提供しない場合です。 (これはGoogleサインインの要件です)。そのため、SHA1フィンガープリントを提供し、google-services.json構成ファイルをアプリフォルダーにダウンロードしてビルドします。あなたは行ってもいいはずです。
Googleサインインは、接続されたiOSおよびWebアプリで自動的に構成されます。 AndroidアプリのGoogleサインインを設定するには、プロジェクト設定で各アプリのSHA1フィンガープリントを追加する必要があります。
これを確認してください 一般的なステータスエラーコード