Kesalahan Masuk Google 12500

106

Saya mencoba mengintegrasikan Masuk dengan Google ke dalam aplikasi saya. Saya tidak memiliki server back-end, saya hanya mendapatkan detail akun Google yang masuk ke aplikasi saya.

Saya pertama kali mencobanya dengan menggunakan Contoh Masuk Google tetapi saya mendapat kesalahan (Tidak ada perubahan kode yang dilakukan kecuali untuk mencetak stacktrace di bawah). Saya baru saja menggunakan contoh SignInActivity karena saya tidak memiliki server back-end.

 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)

Kode

 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;
         }
     }
  }

Dari yang saya baca, masalahnya bisa jadi disebabkan oleh SHA1 Generation .

Saya mengikuti panduan lengkap tetapi ternyata itu tidak berfungsi.

Saya menyalin SHA1 dari gradle signReport

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

apa kemungkinan penyebabnya?

Terima kasih

PS Mungkinkah ini penyebabnya?

Google Play services out of date.  Requires 11720000 but found 10932470
Aaron
sumber
Hai, bisakah Anda memposting kode Anda
Dilip
Hai @Dilip Saya benar-benar menggunakan ini :) github.com/googlesamples/google-services/tree/master/android/… . Tetap diperbarui
Aaron
1
Jadi apa yang terjadi Anda mendapatkan kesalahan yang sama atau hal lain terjadi. Satu hal tolong buat sekali lagi SHA1 secara manual dan letakkan di konsol pengembang terhadap APP Anda dan periksa ulang nama paket dan unduh file google-services.json dan letakkan di level aplikasi.
Dilip
Ya @Dilip saya mendapatkan kesalahan yang sama. Saya telah mencentang nama paket. Saya bahkan mencoba menggunakan keystore lain tetapi hasilnya sama.
Aaron
Anda perlu membuat perubahan kode untuk mendapatkan kunci API Anda . Dan ya, Anda harus memperbarui layanan bermain
OneCricketeer

Jawaban:

37

Cukup perbarui Layanan Google Play Anda ke versi terbaru (atau 11720000 dalam kasus ini). Jika Anda menggunakan gambar AVD, Nexus 5 dan 5X mendukung Google Play. Setelah emulator aktif dan berjalan, buka Menu Extended Controls> Google Play lalu perbarui.

Strauss
sumber
Bagaimana cara melakukannya di perangkat Samsung?
Pinkesh Darji
7
Ini bukan masalah dalam kasus saya. Layanan Google Play sudah diperbarui.
Adam Hurwitz
@ zub0r ini solusi mengenai proyek dan privasi link harus diterima sebagai jawaban yang benar.
Adam Hurwitz
Silahkan di manakah menu extended control, di emulator atau di visual studio?
George Udosen
122

Kesalahan PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

Kesalahan 12500 ini dapat diatasi dengan menambahkan alamat email dukungan ke proyek Anda di pengaturan proyek. Buka tautan https://console.firebase.google.com/

Pilih Proyek Anda dan buka tab pengaturan.

Berikan email dukungan yang valid dan mulai ulang aplikasi Anda sekarang.

masukkan deskripsi gambar di sini

Maddu Swaroop
sumber
10
Terima kasih sobat! Kesalahan ini cukup samar, itu bisa berarti semua hal yang disebutkan dalam jawaban di sini. Masalah saya adalah yang ini :(
Billda
3
Saya melakukan semua yang disebutkan di konsol pengembang developers.google.com/identity/sign-in/android/sign-in dan setelah menghabiskan satu hari untuk mencoba menempatkan sidik jari SHA-1 dan semua ini adalah masalahnya. Kamu membantu. Terima kasih banyak!
kelas Android
Coba tambahkan kunci SHA1 untuk proyek Anda @RohitSingh
Maddu Swaroop
1
@MadduSwaroop Kalau saja ada cara upvote dua kali ... thanks pak
Lefty
1
Anda menyelamatkan hari saya
Houssem
46

Periksa apakah sidik jari SHA-1 ditambahkan ke setelan proyek firebase. Jika tidak, temukan sidik jari SHA-1 menggunakan

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

Juga, temukan sidik jari SHA-1 dari kunci pelepas menggunakan

keytool -list -v -keystore <keystore path>

Hapus <keystore path>dengan jalur penyimpanan kunci.

Kemudian tambahkan kedua sidik jari SHA-1 ke setelan project firebase.

NB: Jangan lupa ganti google-services.json dengan google-services.json yang sudah diupdate dengan sidik jari baru. Saya kehilangan dua hari karena itu.

Saat debug

Android studio secara otomatis membuat ~/.android/debug.keystore pada debug build pertama dan menggunakannya untuk menandatangani aplikasi.

Untuk menjalankan SHA-1 (sandi android) ( doc ):

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

Ini SHA-1harus ditambahkan ke setelan aplikasi di firebaseuntuk memungkinkan penggunaan kemampuan masuk Google saat menguji build debug.

Niyas Nazar
sumber
2
Bagaimana Anda yakin dia menggunakan Firebase?
PaulG
Tebak saja (kesamaan dalam kode dan tanpa server). Proyek Firebase juga terhubung ke konsol GCP. Kami juga dapat mengubah sidik jari di kredensial GCP.
Niyas Nazar
kesalahan yang sama dengan, tetapi dalam kasus saya, ini tidak terkait dengan firebase (saya tidak menggunakannya).
Majed DH
Buka console.developers.google.com/apis/credentials. Tambahkan kredensial baru (O Auth Client) dengan kunci SHA. (Firebase secara otomatis melakukan ini untuk proyek firebase kami)
Niyas Nazar
File google-services.json dapat ditemukan di direktori aplikasi di dalam proyek Anda. (Pergi melalui Finder / File Explorer)
Mehul Tandale
43

 untuk error 12500 Anda perlu menambahkan dukungan gmail di pengaturan firebase saja dan untuk error 10 tambahkan sidik jari ssh di konsol firebase seperti yang Anda lihat pada gambar

Vijay
sumber
jawaban yang baik dan lurus ke depan, Baru saja mengkonfigurasi akun gmail saya dan bam itu melakukan sisanya
Ajeett
43

Email dukungan dan juga semua tautan proyek dan privasi diperlukan agar Masuk dengan Google berfungsi, jika tidak maka akan membuang 12500.

Setel di https://console.developers.google.com/apis/credentials di bagian bawah tab kedua bernama "layar persetujuan OAuth" - di sana Anda akan menemukan tiga tautan yang perlu dikonfigurasi.

Ini tidak disebutkan DI MANA SAJA di panduan Firebase.

zub0r
sumber
3
Terima kasih, ini berhasil untuk saya. Saya telah menyia-nyiakan hampir sepanjang hari untuk menyelesaikan masalah
krishan kumar Sharma
2
Terima kasih, saya baru saja menambahkan salah satu 'domain resmi' ke tautan privasi dan semuanya berfungsi. Anda menyelamatkan saya beberapa jam trial and error 💌
Coco
Ini harus menjadi jawaban yang diterima. Saya telah berjuang dengan 2 hari itu, tanpa hasil. Google harus memperbarui panduan, karena sekarang dokumentasinya menyesatkan, panduan mereka tidak akan pernah berfungsi dan kode kesalahan tidak memberi tahu apa
user1209216
1
di mana menambahkan tautan privasi?
Shihab Uddin
4
Di tab kedua bernama "layar persetujuan OAuth" - di bagian bawah formulir, Anda memiliki tiga tautan
zub0r
21

Coba perbarui layar persetujuan OAuth di https://console.developers.google.com/apis/credentials

Fauzi Danartha
sumber
3
Saya harus menambahkan email dukungan dan kemudian itu mulai berfungsi. Ini berdebar-debar.
adarsh
Juga semua proyek dan tautan privasi diperlukan, jika tidak maka akan melempar 12500. Ini tidak disebutkan di mana pun.
zub0r
Tautan @ zub0r tidak diperlukan. Sumber: Saya baru saja melakukannya tanpa mereka.
easycheese
18

Saya terjebak dalam hal ini untuk sementara waktu.

Pastikan langkah ini dilakukan-

  • Kunci SHA yang benar disimpan di Firebase Console.
  • Unduh google-service.json terbaru
  • Dan terakhir dan paling penting Simpan persetujuan OAuth di bawah kredensial di api google, Layar OAuth Ini butuh waktu lama untuk mengetahuinya. Dan itu bekerja dengan baik setelah ini.
Pranjal Gupta
sumber
6
baik. ini harus menjadi jawaban yang diterima untuk 2019 di sini. anehnya google "harus" memperbarui konten di dalam Persetujuan OAuth
mochadwi
1
Ugh, voting lagi untuk ini. Benar-benar masalah saya yang tidak jelas.
easycheese
12

Sepertinya SHA1 Anda ditimpa oleh Google Play Store. Periksa di toko bermain Google Anda, panel peluncuran, di bawah penandatanganan aplikasi, lihat apakah google play memiliki SHA1 tambahan ditambahkan.

Dan salin SHA1 itu, tambahkan ke tempat Anda yang relevan, akan melakukan pekerjaan itu.

Paul Zhang Ising
sumber
1
ya Tuhan! Terima kasih atas tip ini! App Bundle membuat SHA1-nya sendiri, sehingga kunci rilis yang digunakan secara lokal (saat membuat APK) tidak lagi tepat.
Jia Tse
Ini adalah alur kerja paling membingungkan yang pernah ada. Tapi terima kasih atas tipnya
DarkNeuron
5

Jika masih ada orang di luar sana dengan masalah serupa, jika Anda menambahkan cakupan khusus, pastikan itu adalah cakupan yang valid. Dalam kasus saya, saya mencampur cakupan Facebook dengan cakupan Google dan membutuhkan waktu beberapa saat untuk mengetahuinya!

Paulo Taylor
sumber
5

Saya menggunakan Firebase Authentication. SHA-1 saya ditunjukkan dengan benar, id klien juga benar tetapi saya masih mendapatkan 12500.

Ternyata masalah saya adalah saya tidak menunjukkan email Dukungan di pengaturan proyek saya. (Pengaturan -> tab Umum -> Proyek Anda (Pengaturan publik)).

algrid.dll
sumber
3
Hal yang sama terjadi pada saya juga. Ada masalah dokumentasi yang serius dengan layanan Google. Saya berharap mereka mendokumentasikan masalah seperti itu atau setidaknya menunjukkan kesalahan yang ramah pengguna.
ashish-goel
4

Buka proyek Anda di Firebase console, buka Setelan Proyek, tambahkan sidik jari sertifikat SHA Anda di sana. Unduh file google-services.json yang diperbarui dan tambahkan ke folder aplikasi Proyek Anda.

Ini berhasil untuk saya.

Screenshot Firebase console

Nishant Rai
sumber
3

Saya pikir kesalahan itu berasal dari SHA1 yang salah. Harap jangan lupa bahwa SHA1 berbeda antara mode rilis dan debug di studio android. Alih-alih menggunakan keytool untuk mendapatkan SHA1, Anda dapat menggunakan proyek Gradle -> Task -> android -> signReport di android studio (dapat membukanya dengan menu View -> Toolwindow -> gradle) untuk mendapatkan rilis dan debug SHA1. Setelah itu, agar mudah bekerja, Anda perlu membuat 2 kredensial terpisah dengan dua SHA1 di konsol Google cloud (google hanya menginstruksikan untuk membuat 1 menggunakan rilis SHA1, ketika kami mengembangkannya tidak akan berfungsi karena menggunakan debug SHA1).

Bioz Nguyen
sumber
3

Pertama, pastikan Anda mendaftarkan aplikasi Anda di konsol pengembang google

Pastikan Anda memiliki kunci debugdan releasedi aplikasi Firebase. Jika kesalahan ini muncul dalam produksi, tambahkan Anda SHA-1 release keyke aplikasi basis api. Jika muncul dalam pengembangan, maka tambahkan SHA-1 debug key.

Tempat menambahkan sidik jari SHA-1

Mendapatkan kunci debug / rilis:

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

Pastikan untuk mengunduh pembaruan google-services.jsonke aplikasi Anda.

Denn
sumber
Saya gagal dengan GoogleSignInResult.getSuccess () mengembalikan false dan kode 12500. Pada akhirnya, orang lain telah menyiapkan OAuth saya dengan SHA1 mereka, bukan kunci debug saya. Ini memperbaikinya.
Ceroboh
@Reckless Saya senang ini membantu!
Denn
2

Bagi saya, masalahnya adalah menggunakan ClientID 'rilis' dengan aplikasi saya yang dikonfigurasi debug. Pastikan Anda memiliki rilis dan kunci debug, menggunakan masing-masing SHA-1.

peresisUser
sumber
2

Jika Anda datang ke sini dari flutter : Ini adalah salah satu kasus sudut yang harus kami perbaiki sesuai dengan dokumentasi di sini: https://pub.dev/packages/google_sign_in masukkan deskripsi gambar di sini

  • Buka Google API & Layanan
  • Pilih aplikasi yang ingin Anda terapkan masuk dengan Google.
  • Kemudian klik Aktifkan APIS dan Layanan

masukkan deskripsi gambar di sini

  • Kemudian Cari Google Peoples API

masukkan deskripsi gambar di sini

  • Buka kartu Google People API dan klik aktifkan, aplikasi Anda mungkin dapat mengatasi masalah tersebut.
erluxman.dll
sumber
2

Saat aplikasi Anda mengautentikasi dengan server backend atau mengakses Google API dari server backend, Anda harus meneruskan ID klien OAuth 2.0 yang dibuat untuk server Anda ke metode requestIdToken saat Anda membuat objek GoogleSignInOptions, untuk mengakses informasi profil dasar pengguna . Selain itu, jangan lupa untuk mengirimkan email dukungan di layar persetujuan OAuth yang ada di halaman Kredensial di Konsol API.

Sridhar Shanmugam
sumber
1

Bisa juga terjadi bahwa compiler cordova tidak dapat menemukan file keystore yang tepat.



Solusi: Sebelum menjalankan ionic cordova build androidtentukan properti penandatanganan

Langkah-1 : Buat file keystore debug

Jalankan perintahnya

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

Gunakan kata sandi: android

Langkah-2: Salin file keystore ( debug.keystore) dari ~/.androidke platform/androiddirektori proyek Anda saat ini

Langkah-3: Buat file bernama release-signing.properties di platform/androiddirektori

Langkah-4: Tambahkan konten di file

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

Catatan: Ini adalah nilai default. Jika Anda telah memberikan alias dan kata sandi khusus, maka gunakanlah yang sesuai.

Langkah-5: Sekarang buationic cordova build android

Debojyoti
sumber
1

Saya mengalami masalah yang sama setelah membuka proyek saya di komputer lain (Android Studio berbeda). Dalam kasus saya, saya menyelesaikannya menggunakan Asisten Firebase, yang telah saya gunakan untuk menyiapkan Firebase pada awalnya. Membuka Firebase Assistant (Tools> Firebase) dan memilih Authentication> Connect. Ini menghubungkan kembali proyek ke Firebase dan memperbarui konfigurasi

allo
sumber
1

Saya terjebak dalam masalah Google Login sejak 2 minggu, akhirnya diurutkan dengan baik. Biar saya jelaskan alasannya. Masalahnya terkait dengan firebase. Di firebase, mereka menyebutkan bidang "email dukungan" sebagai opsional. Tetapi begitu saya menambahkannya (salah satu email pribadi Anda), masalah disortir dan saya mendapat tanggapan. Jika Anda mendapatkan kesalahan sebagai 12501, maka itu terkait dengan pengaturan di akun google Anda.

Kevin
sumber
1

Saya terjebak dalam hal ini untuk sementara waktu.

Pastikan langkah ini dilakukan-

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

Dalam kasus saya, ini karena ID Klien Google yang salah. Saya mengubah kunci saya ke kunci yang terdaftar di google-services.json( di bawah oauth_clientobjek)

Thuanle
sumber
0

Pastikan Anda telah menyiapkan hal-hal berikut dengan benar:

  1. Hasilkan ID Klien di Proyek Google Anda.
  2. Berikan kunci SHA-1 yang tepat untuk ID Klien tersebut. (debug / rilis)
  3. Berikan nama paket yang tepat untuk ID Klien tersebut.
  4. Pastikan Anda telah membuat ID Klien dalam strings.xml, google-services.jsonatau credentials.jsonfile.
Chintan Shah
sumber
0

https://developers.google.com/identity/sign-in/android/sign-in ikuti dokumentasi api ini tetapi perlu diingat bahwa di dalam WEB_CLIENT_ID gunakan nilai id klien yang dihasilkan di dalam file google-services.json.

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)
                }
            }
}
Vajani Kishan
sumber
0

Dalam kasus saya, Setelah menambahkan sidik jari di konsol Firebase, itu secara otomatis diambil oleh konsol pengembang Google dan menunjukkan sidik jarinya. Tapi tidak berhasil masuk. Setelah melihat setiap langkah, saya menyimpulkan bahwa Google membalik paket file manifes saya seperti ini com.xxxxxxxx.app. Tapi sebenarnya app.xxxxxxxx.com, di konsol pengembang Google. Jadi saya menghapus otomatis membuat sidik jari dan menambahkan sidik jari dengan nama paket yang benar. LEDAKAN!!. Berhasil.

Naroju
sumber
0

Kesalahan muncul pada saya ketika opsi Google tidak diaktifkan, seperti yang ditunjukkan pada gambar .

Itu terjadi ketika saya mengubah akun Google dan lupa mengaktifkan opsi untuk menghubungkan dengan Google.

Yonibagi
sumber
0

Pastikan proyek Anda tidak boleh berisi karakter khusus apa pun termasuk angka atau simbol apa pun (nama proyek harus sesederhana com.google.testproject)

Sekhon123
sumber
Itu memanggil nama paket proyek bukan nama proyek
b devloper
0

Dalam kasus saya, saya mengerjakan aplikasi non-produksi, masalahnya adalah saat membuat proyek di konsol firebase, ada masalah saat menyinkronkan kunci SHA-1 secara bolak-balik dari konsol pengembang Firebase & Google. Jadi, saya memutuskan untuk membuat proyek terlebih dahulu di konsol Pengembang Google, lalu memilihnya saat membuat proyek baru di konsol Firebase.

Saya juga membuat tutorial untuk ini, yang mungkin bisa membantu Anda.

Zain
sumber
0

Dalam kasus saya, masalahnya adalah emulator saya tidak memiliki Play Store. Saya telah membuat emulator (bernama API 23) melalui Visual Studio, karena saya mengembangkan menggunakan Xamarin.Forms juga, dan di Pengelola Perangkat Android Visual Studio Anda dapat memilih apakah emulator Anda harus memiliki Google Play Store.

Harus membuat emulator melalui AVD Android Studio dan memastikannya memiliki Play Store:

masukkan deskripsi gambar di sini

Buluh
sumber
0

Dalam kasus saya, kesalahan ini terjadi karena autentikasi android telah dihapus oleh tim senior karena tampaknya tidak diperlukan kunci android dalam otentikasi backend. Jadi baik kunci klien Android dan Web diperlukan dalam login google.

Tank Himani
sumber
-1

Coba opsi ini:

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

Ini meminta kata sandi dan cukup masukkan kata sandi. Anda dapat melihat sidik jari SHA1, MD5.

masukkan deskripsi gambar di sini

Srini
sumber