Googleログインエラー12500


106

アプリにGoogleログインを統合しようとしています。バックエンドサーバーがありません。ログオンしたGoogleアカウントの詳細をアプリに取得しています。

私は最初にGoogleサインインの例を使用して試しましたが、エラーが発生しました(以下のスタックトレースを出力する以外はコードの変更はありません)。バックエンドサーバーがないため、サンプルのSignInActivityを使用しました。

 Exception com.google.android.gms.common.api.ApiException: 12500: 
 at com.google.android.gms.common.internal.zzb.zzz(Unknown Source)
 at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
 at com.ewise.android.api.MainActivity.onActivityResult(SignInActivity.java:89)     at android.app.Activity.dispatchActivityResult(Activity.java:7010)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:4187)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:4234)
 at android.app.ActivityThread.-wrap20(ActivityThread.java)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1584)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:154)
 at android.app.ActivityThread.main(ActivityThread.java:6316)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

コード

 public class SignInActivity extends AppCompatActivity implements
         View.OnClickListener {

     private static final String TAG = "SignInActivity";
     private static final int RC_SIGN_IN = 9001;

     private GoogleSignInClient mGoogleSignInClient;
     private TextView mStatusTextView;

     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         // Views
         mStatusTextView = findViewById(R.id.status);

         // Button listeners
         findViewById(R.id.sign_in_button).setOnClickListener(this);
         findViewById(R.id.sign_out_button).setOnClickListener(this);
         findViewById(R.id.disconnect_button).setOnClickListener(this);

         // [START configure_signin]
         // Configure sign-in to request the user's ID, email address, and basic
         // profile. ID and basic profile are included in DEFAULT_SIGN_IN.
         GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                 .requestEmail()
                 .build();
         // [END configure_signin]

         // [START build_client]
         // Build a GoogleSignInClient with the options specified by gso.
         mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
         // [END build_client]

         // [START customize_button]
         // Set the dimensions of the sign-in button.
         SignInButton signInButton = findViewById(R.id.sign_in_button);
         signInButton.setSize(SignInButton.SIZE_STANDARD);
         signInButton.setColorScheme(SignInButton.COLOR_LIGHT);
         // [END customize_button]
     }

     @Override
     public void onStart() {
         super.onStart();

         // [START on_start_sign_in]
         // Check for existing Google Sign In account, if the user is already signed in
         // the GoogleSignInAccount will be non-null.
         GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
         updateUI(account);
         // [END on_start_sign_in]
     }

     // [START onActivityResult]
     @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);
             handleSignInResult(task);
         }
     }
     // [END onActivityResult]

     // [START handleSignInResult]
     private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
         try {
             GoogleSignInAccount account = completedTask.getResult(ApiException.class);

             // Signed in successfully, show authenticated UI.
             updateUI(account);
         } catch (ApiException e) {
             // The ApiException status code indicates the detailed failure reason.
             // Please refer to the GoogleSignInStatusCodes class reference for more information.
             Log.w(TAG, "signInResult:failed code=" + e.getStatusCode());
             e.printStackTrace();
             updateUI(null);
         }
     }
     // [END handleSignInResult]

     // [START signIn]
     private void signIn() {
         Intent signInIntent = mGoogleSignInClient.getSignInIntent();
         startActivityForResult(signInIntent, RC_SIGN_IN);
     }
     // [END signIn]

     // [START signOut]
     private void signOut() {
         mGoogleSignInClient.signOut()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END signOut]

     // [START revokeAccess]
     private void revokeAccess() {
         mGoogleSignInClient.revokeAccess()
                 .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                     @Override
                     public void onComplete(@NonNull Task<Void> task) {
                         // [START_EXCLUDE]
                         updateUI(null);
                         // [END_EXCLUDE]
                     }
                 });
     }
     // [END revokeAccess]

     private void updateUI(@Nullable GoogleSignInAccount account) {
         if (account != null) {
             mStatusTextView.setText(getString(R.string.signed_in_fmt, account.getDisplayName()));

             findViewById(R.id.sign_in_button).setVisibility(View.GONE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
         } else {
             mStatusTextView.setText(R.string.signed_out);

             findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
             findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
         }
     }

     @Override
     public void onClick(View v) {
         switch (v.getId()) {
             case R.id.sign_in_button:
                 signIn();
                 break;
             case R.id.sign_out_button:
                 signOut();
                 break;
             case R.id.disconnect_button:
                 revokeAccess();
                 break;
         }
     }
  }

私が読んだことから、問題はSHA1世代が原因である可能性があります。

私は完全なガイドに従いましたが、どうやらそれは機能していません。

Gradle signingReportからSHA1をコピーしました

Variant: debug
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: release
Config: none
----------
Variant: debugAndroidTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047
----------
Variant: debugUnitTest
Config: debug
Store: /Users/user/.android/debug.keystore
Alias: AndroidDebugKey
MD5: A3:16:3F:43:75:FE:07:62:6D:8D:CC:DD:21:9F:FA:1A
SHA1: 7B:21:26:7F:D8:18:BB:0E:36:1C:82:DD:B7:28:5F:C1:2F:5C:E4:EA
Valid until: Saturday, August 31, 2047

これの考えられる原因は何でしょうか?

ありがとう

PSこれは考えられる原因でしょうか?

Google Play services out of date.  Requires 11720000 but found 10932470

コードを投稿してください
Dilip

こんにちは@Dilip文字通りこれを使用しました:) github.com/googlesamples/google-services/tree/master/android/…。とにかくそれを更新
アーロン

1
つまり、同じエラーが発生するか、他に何が起こるかということです。SHA1を手動でもう一度作成し、開発者コンソールでAPPを入力してパッケージ名を確認し、google-services.jsonファイルをダウンロードしてアプリレベルで配置してください。
Dilip

はい@Dilip同じエラーが出ます。チェックしたパッケージ名を越えました。別のキーストアを使用してみましたが、結果は同じです。
アーロン

あなたは、取得するためにコードを変更する必要があなたの APIキーを。はい、プレイサービスを更新する必要があります
OneCricketeer

回答:


37

Google Play開発者サービスを最新バージョン(この場合は11720000)に更新するだけです。AVDを使用している場合、Nexus 5および5X画像はGoogle Playをサポートします。エミュレータが起動して実行されたら、[拡張コントロールメニュー]> [Google Play]に移動して更新します。


Samsungデバイスでそれを行う方法
Pinkesh Darji

7
これは私の場合の問題ではありません。Google Play開発者サービスはすでに最新です。
アダムフルヴィッツ

プロジェクトとプライバシーのリンクに関する@ zub0rのソリューションは、正解として受け入れられる必要があります。
アダムフルヴィッツ

エミュレータまたはビジュアルスタジオの拡張コントロールメニューはどこにありますか?
ジョージウドセン

121

エラーPlatformException(sign_in_failed、com.google.android.gms.common.api.ApiException:12500:、null)

この12500エラーは 、プロジェクト設定プロジェクトにサポートメールアドレスを追加することで解決できます。 リンクhttps://console.firebase.google.com/を開き ます

プロジェクトを選択し、設定タブを開きます。

有効なサポートメールを提供し、今すぐアプリケーションを再起動してください。

ここに画像の説明を入力してください


9
ありがとう!このエラーはかなり不可解です。これは、ここの回答で言及されているものを意味します。私の問題はこれでした:(
Billda

3
私は開発者コンソールのdeveloper.google.com/identity/sign-in/android/sign-inで述べたすべてを行い、SHA-1フィンガープリントの入力に1日費やした後、これがすべて問題でした。あなたは助けた。どうもありがとう!
クラスAndroid、

プロジェクトのSHA1キーを追加してみてください@RohitSingh
Maddu Swaroop

1
@MadduSwaroop 2回賛成する方法があった場合のみ...ありがとうサー
レフティ

1
あなたは私の日を救った
Houssem

46

SHA-1フィンガープリントがfirebaseプロジェクト設定に追加されているかどうかを確認します。そうでない場合は、次を使用してSHA-1フィンガープリントを見つけます

https://developers.google.com/android/guides/client-auth

また、リリースキーのSHA-1フィンガープリントを使用して検索します

keytool -list -v -keystore <keystore path>

<keystore path>キーストアのパスで削除します。

次に、両方のSHA-1フィンガープリントをfirebaseプロジェクトの設定に追加します。

注:google-services.jsonを、更新されたgoogle-services.jsonで新しいフィンガープリントに置き換えることを忘れないでください。私はそれで2日を失いました。

デバッグ中

Android Studio ~/.android/debug.keystore、最初のデバッグビルドで自動的に生成し、それを使用してアプリに署名します。

SHA-1を実行するには(パスワードandroid)(ドキュメント)を実行します。

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

これSHA-1をのアプリ設定に追加して、firebaseデバッグビルドのテスト中にGoogleサインイン機能を使用できるようにする必要があります。


1
彼がFirebaseを使用していることをどのように確信していますか?
PaulG 2018年

それを推測しました(コードとサーバーレスの類似性)。FirebaseプロジェクトはGCP Consoleにも接続されています。GCP認証情報のフィンガープリントを変更することもできます。
Niyas Nazar 2018

同じエラーですが、私の場合、それはfirebaseに関連していませんでした(私はそれを使用していません)。
Majed DH

console.developers.google.com/apis/credentialsに移動します 。SHAキーを使用して新しい認証情報(O Authクライアント)を追加します。(Firebaseは、Firebaseプロジェクトに対してこれを自動的に行います)
Niyas Nazar 2018

google-services.jsonファイルは、プロジェクト内のappディレクトリにあります。(Finder / File Explorerを通過)
Mehul Tandale

43

 エラー12500の場合は、Firebaseの設定でのみサポートGmailを追加する必要があります。エラー10の場合は、Firebaseコンソールでsshフィンガープリントを追加してください(図を参照)。



43

Googleログインが機能するには、サポートメールとすべてのプロジェクトおよびプライバシーリンクが必要です。それ以外の場合は、12500がスローされます。

2番目のタブの下部にある「OAuth同意画面」という名前のhttps://console.developers.google.com/apis/credentialsで設定し ます -設定が必要な3つのリンクがあります。

これは、Firebaseガイドのどこにも記載されていません。


3
ありがとう、それは私のために働いています。私は問題を解決するためにほぼ丸一日
費やしてきました

2
おかげで、プライバシーリンクに「承認済みドメイン」の1つを追加しただけで、すべてが機能しました。試行錯誤の数時間を節約してくれましたsaved
Coco

これは受け入れられるべき答えです。私はその2日間、苦労してきました。Googleはガイドを更新する必要があります。今のところ、そのドキュメントは誤解を招くものであり、ガイドは機能せず、エラーコードは何も伝えません
user1209216

1
プライバシーリンクを追加する場所
Shihab Uddin

4
「OAuth同意画面」という2番目のタブ-フォームの下部に3つのリンクがあります
zub0r

21

3
サポートメールを追加する必要があり、それが機能し始めました。これはひらひらしていた。
adarsh

また、すべてのプロジェクトリンクとプライバシーリンクが必要です。それ以外の場合は12500がスローされます。これについてはどこにも言及されていません。
zub0r

@ zub0rリンクは必要ありません。ソース:私はそれらなしでそれをやった。
easycheese

18

私はしばらくこれに行き詰まりました。

これらのステップが実行されていることを確認してください-

  • 正しいSHAキーがFirebaseコンソールに保存されます。
  • 最新のgoogle-service.jsonをダウンロード
  • そして最後に、そして最も重要なの は、Google APIの資格情報の下でのOAuthの保存の同意、 OAuth画面これを理解するのに長い時間がかかりました。そして、それはこの後うまくいきました。

6
上手。これは、2019年のここで受け入れられる答えになるはずです。グーグルがOAuth同意
mochadwi

1
ああ、これへの別の投票。完全に私のあいまいな問題でした。
easycheese

12

SHA1がGoogle Playストアによって上書きされたようです。Google Playストア、起動パネル、アプリの署名の下で、Google Playに追加のSHA1が追加されているかどうかを確認します。

そして、そのSHA1をコピーして、適切な場所に追加すれば、その仕事ができます。


1
何てことだ!このヒントをありがとう!App Bundleは独自のSHA1を作成したため、ローカルで(APKの生成時に)使用されるリリースキーは正しいものではなくなりました。
Jia Tse

これは、これまでで最も混乱するワークフローです。ヒントをありがとう
DarkNeuron

5

同様の問題を抱えている人がまだいる場合、カスタムスコープを追加する場合は、それが有効なスコープであることを確認してください。私の場合、FacebookスコープとGoogleスコープを混在させ、理解するのにしばらく時間がかかりました。


5

Firebase Authenticationを使用しています。私のSHA-1は正しく示され、クライアントIDも正しくありましたが、それでも12500を取得していました。

私の問題は、プロジェクトの設定でサポートメールを示さなかったことでした。(設定->一般タブ->プロジェクト(パブリック設定)セクション)。


3
私にも同じことが起こりました。Googleのサービスには、深刻なドキュメントの問題があります。私は彼らがそのような問題を文書化するか、少なくともユーザーフレンドリーなエラーを見せてくれることを望みます。
ashish-goel

4

Firebaseコンソールでプロジェクトに移動し、[プロジェクトの設定]を開いて、SHA証明書のフィンガープリントをそこに追加します。更新されたgoogle-services.jsonファイルをダウンロードして、プロジェクトアプリのフォルダーに追加します。

これでうまくいきました。

Firebaseコンソールのスクリーンショット


3

エラーは間違ったSHA1に起因すると思います。AndroidスタジオのリリースモードとデバッグモードではSHA1が異なることを忘れないでください。keytoolを使用してSHA1を取得する代わりに、Android StudioでGradleプロジェクト->タスク-> android-> signingReportを使用して(メニューの[表示]-> [ツールウィンドウ]-> [gradle]で開くことができます)、リリースを取得してSHA1をデバッグできます。その後、作業を​​簡単にするために、Google Cloud Consoleで2つのSHA1を使用して2つの個別の認証情報を作成する必要があります(GoogleはリリースSHA1を使用して1を作成するように指示しますが、開発時にはデバッグSHA1を使用するため機能しません)。


3

まず、Googleデベロッパーコンソールでアプリを登録したことを確認します

Firebaseアプリケーションにdebugreleaseキーの両方があることを確認してください。このエラーが本番環境で発生した場合は、SHA-1 release keyFirebaseアプリを追加してください。開発中の場合は、を追加してくださいSHA-1 debug key

SHA-1フィンガープリントを追加する場所

デバッグ/リリースキーの取得:

keytool -exportcert -list -v -alias [your alias] -keystore [path/to/debug or release.keystore]

更新google-services.jsonしたアプリを必ずダウンロードしてください。


GoogleSignInResult.getSuccess()がfalseとコード12500を返すのに失敗しました。最終的に、他の誰かが私のデバッグキーの代わりにSHA1を使用してOAuthを設定したことが原因です。これはそれを修正しました。
2019年

@無謀私はこれが助けてくれてうれしいです!
Denn

2

私にとっての問題は、デバッグ構成アプリで「リリース」ClientIDを使用することでした。各SHA-1をそれぞれ使用して、リリースキーとデバッグキーがあることを確認してください。


2

フラッターからここに来ている場合:これは、こちらのドキュメントに従って修正する必要がある主要なケースの1つです:https : //pub.dev/packages/google_sign_in ここに画像の説明を入力してください

  • 行くGoogle APIの&Sevices
  • Googleサインインを実装するアプリを選択します。
  • 次に、[APISとサービスを有効にする]をクリックします。

ここに画像の説明を入力してください

  • 次に、Google Peoples APIを検索します

ここに画像の説明を入力してください

  • Google People APIカードを開いて[有効にする]をクリックすると、アプリが問題を解決できる場合があります。

2

アプリがバックエンドサーバーで認証するか、バックエンドサーバーからGoogle APIにアクセスする場合、ユーザーの基本的なプロファイル情報にアクセスするために、GoogleSignInOptionsオブジェクトを作成するときに、サーバー用に作成されたOAuth 2.0クライアントIDをrequestIdTokenメソッドに渡す必要があります。また、APIコンソールの[認証情報]ページにあるOAuth同意画面でサポートメールを送信することを忘れないでください。


1

また、cordovaコンパイラが適切なキーストアファイルを見つけられない場合もあります。



解決策:実行ionic cordova build androidする前に署名プロパティを指定する

手順1:デバッグキーストアファイルを生成する

コマンドを実行する

keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore

パスワードを使用: android

ステップ2: (キーストアファイルをコピーしてdebug.keystoreから)~/.androidplatform/android現在のプロジェクトのディレクトリ

ステップ3:という名前のファイルを作成release-signing.propertiesplatform/androidディレクトリを

手順4:ファイルにコンテンツを追加する

storeFile=debug.keystore
keyAlias=androiddebugkey
storePassword=android
keyPassword=android

注:これらはデフォルト値です。カスタムエイリアスとパスワードを指定した場合は、それに応じて使用します。

ステップ5:ビルドするionic cordova build android


1

別のコンピューター(別のAndroid Studio)でプロジェクトを開いた後、同じ問題が発生しました。私の場合、最初にFirebaseのセットアップに使用したFirebase Assistantを使用して解決しました。Firebase Assistantを開き([ツール]> [Firebase])、[認証]> [接続]を選択しました。これにより、プロジェクトがFirebaseに再接続され、設定が更新されました


1

2週間目からGoogleログインの問題に悩まされ、ようやくうまく整理できました。理由を説明しましょう。この問題は、firebaseに関連していました。firebaseで、彼らはオプションとしてフィールド「サポートメール」を述べました。しかし、それを追加すると(個人的なメールのいずれか)、問題はソートされ、応答が得られました。12501のエラーが発生する場合、それはGoogleアカウントの設定に関連しています。


1

私はしばらくこれに行き詰まりました。

これらのステップが実行されていることを確認してください-

Correct SHA key is saved on Firebase Console.
Valid reversed client id.
from fcm console=>select app=>from authentication=>enable google sign-in method

0

私の場合、GoogleクライアントIDが間違っていることが原因です。キーをgoogle-services.jsonoauth_clientオブジェクトの下)にリストされているキーに変更します


0

次のものが正しく設定されていることを確認してください。

  1. GoogleプロジェクトでクライアントIDを生成します。
  2. そのクライアントIDに適切なSHA-1キーを提供します。(デバッグ/リリース)
  3. そのクライアントIDの適切なパッケージ名を指定します。
  4. あなたはクライアントIDで生成していることを確認しstrings.xmlgoogle-services.jsonまたはcredentials.jsonファイルを。

0

https://developers.google.com/identity/sign-in/android/sign-in はこのAPIドキュメントに従いますが、WEB_CLIENT_ID内ではgoogle-services.jsonファイル内で生成されたクライアントIDの値を使用することに注意してください。

class MainActivity : AppCompatActivity(), GoogleApiClient.OnConnectionFailedListener {
private val TAG = "JSAGoogleSignIn"
private val REQUEST_CODE_SIGN_IN = 1234
private val WEB_CLIENT_ID = "354298333018-XXXXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com"
private var mAuth: FirebaseAuth? = null

private var mGoogleApiClient: GoogleApiClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    var txt_register = findViewById<TextView>(R.id.txt_register)
    txt_register.setOnClickListener {
        var intent = Intent(this@MainActivity, RegisterActivity::class.java)
        finish()
        startActivity(intent)
    }
    val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(WEB_CLIENT_ID)
            .requestEmail()
            .build()
    mGoogleApiClient = GoogleApiClient.Builder(this)
            .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .build()

    mAuth = FirebaseAuth.getInstance()
    sign_in_button.setOnClickListener {
        val intent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient)
        startActivityForResult(intent, REQUEST_CODE_SIGN_IN)
    }

}


override fun onConnectionFailed(p0: ConnectionResult) {
    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}


private fun updateUI(user: FirebaseUser?) {
    if (user != null) {
        Log.e("Email", "Value" + user.email)
    }

}

fun signIn() {

}

override fun onStart() {
    super.onStart()
    val currentUser = mAuth!!.currentUser
    updateUI(currentUser)
}

public override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)

    // Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
    if (requestCode == REQUEST_CODE_SIGN_IN) {
        val result = Auth.GoogleSignInApi.getSignInResultFromIntent(data)
        if (result.isSuccess) {
            // successful -> authenticate with Firebase
            val account = result.signInAccount
            firebaseAuthWithGoogle(account!!)
        } else {
            // failed -> update UI
            updateUI(null)
            Toast.makeText(applicationContext, "SignIn: failed!" + result.status,
                    Toast.LENGTH_SHORT).show()
        }
    }
}

private fun firebaseAuthWithGoogle(acct: GoogleSignInAccount) {
    Log.e(TAG, "firebaseAuthWithGoogle():" + acct.id!!)

    val credential = GoogleAuthProvider.getCredential(acct.idToken, null)
    mAuth!!.signInWithCredential(credential)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Sign in success
                    Log.e(TAG, "signInWithCredential: Success!")
                    val user = mAuth!!.currentUser
                    updateUI(user)
                } else {
                    // Sign in fails
                    Log.w(TAG, "signInWithCredential: Failed!", task.exception)
                    Toast.makeText(applicationContext, "Authentication failed!",
                            Toast.LENGTH_SHORT).show()
                    updateUI(null)
                }
            }
}

0

私の場合、Firebaseコンソールでフィンガープリントを追加した後、Googleデベロッパーコンソールによってフィンガープリントが自動的に取得され、フィンガープリントが表示されました。しかし、サインインは機能しませんでした。すべての手順を確認した後、Googleがマニフェストファイルパッケージを次のように逆転させたことがわかりましたcom.xxxxxxxx.app。しかし、それは実際にapp.xxxxxxxx.comは、Google開発者コンソールにあります。そこで、自動作成されたフィンガープリントを削除し、正しいパッケージ名でフィンガープリントを追加しました。ブーム!!。出来た。



0

プロジェクトに数字や記号などの特殊文字が含まれていないことを確認してください(プロジェクト名はcom.google.testprojectのように単純にする必要があります)


それはプロジェクト名ではなくプロジェクトパッケージ名と呼ばれます
b devloper '10

0

私の場合、本番以外のアプリで作業していましたが、Firebaseコンソールでプロジェクトを作成するときに、FirebaseとGoogleデベロッパーコンソール間でSHA-1キーを同期する際に問題が発生するという問題がありました。そこで、まずGoogleデベロッパーコンソールでプロジェクトを作成し、Firebaseコンソールで新しいプロジェクトを作成するときにそれを選択することにしました。

このチュートリアルも作成しました。


0

私の場合、問題は私のエミュレータにPlayストアがなかったことでした。Xamarin.Formsも使用して開発しているため、Visual Studioを介してエミュレーター(API 23という名前)を作成しました。VisualStudioのAndroidデバイスマネージャーでは、エミュレーターにGoogle Playストアを含めるかどうかを選択できます。

Android StudioのAVDを介してエミュレータを作成し、Playストアがあることを確認する必要がありました。

ここに画像の説明を入力してください


0

私の場合、このエラーは、バックエンド認証にAndroidキーが必要ないように見えるため、Android認証が上級チームによって削除されたために発生しました。したがって、GoogleログインにはAndroidクライアントキーとWebクライアントキーの両方が必要です。


-1

このオプションを試してください:

keytool -list -v -keystore C:\Users\MG\Desktop\test.jks -alias test

パスワードの入力を求め、パスワードを入力するだけです。SHA1、MD5フィンガープリントを確認できます。

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.