Помилка входу в 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 .

Я дотримувався повного керівництва, але, мабуть, це не працює.

Я скопіював SHA1 з gradle підписання репортажу

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 Я буквально використовував :) github.com/googlesamples/google-services/tree/master/android / ... . Оновлено його все одно
Аарон

1
Тож, що трапляється, ви отримуєте таку ж помилку або що-небудь інше. Що-небудь, будь ласка, ще раз зробіть SHA1 вручну та поставте на консоль розробника проти вашої програми APP та перехресну перевірку імені пакета та завантажте файл google-services.json та поставте на рівень програми.
Діліп

Так @Dilip Я отримую ту ж помилку. Я перекреслив перевірену назву пакета. Я навіть спробував використовувати інший магазин, але результат той самий.
Аарон

Ви повинні змінити код , щоб отримати ваш ключ API. І так, вам слід оновити сервіси гри
OneCricketeer

Відповіді:


37

Просто оновіть Служби Google Play до останньої версії (або 11720000 в цьому випадку). Якщо ви використовуєте AVD, зображення Nexus 5 та 5X підтримують Google Play. Після запуску емулятора перейдіть до меню розширених елементів керування> Google Play, а потім оновіть.


Як це зробити на пристроях Samsung?
Pinkesh Darji

7
Це не в моєму випадку. Служби Google Play уже оновлені.
Адам Гурвіц

@ Zub0r в рішення щодо проекту і конфіденційності зв'язку повинні бути прийняті в якості правильної відповіді.
Адам Гурвіц

Будь ласка, де розширене меню керування, на емуляторі чи у візуальній студії?
Джордж Удосен

122

Помилка PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 12500:, null)

Цю помилку 12500 можна вирішити, додавши електронну адресу підтримки до вашого проекту в налаштуваннях проекту. Відкрити посилання https://console.firebase.google.com/

Виберіть проект та відкрийте вкладку налаштувань.

Надайте дійсну електронну пошту підтримки та перезавантажте програму зараз.

введіть тут опис зображення


10
Спасибі людино! Ця помилка є досить виразною, вона може означати будь-який матеріал, про який йдеться у відповідях тут. Моя проблема була така :(
Billda

3
Я зробив усе, що згадувалося в консолі розробника developers.google.com/identity/sign-in/android/sign-in і, витративши день на спробу поставити відбиток пальців SHA-1, і все це було проблемою. Ви допомогли. Дуже дякую!
Android Android

Спробуйте додати ключ SHA1 для свого проекту @RohitSingh
Maddu Swaroop

1
@MadduSwaroop Якби тільки було два рази звернути увагу ... дякую сер
Lefty

1
Ти врятував мій день
Гуссем

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 на нові відбитки пальців. Я програв два дні на цьому.

Під час налагодження

Студія Android автоматично генерує ~/.android/debug.keystore при першій збірці налагодження та використовує її для підписання програми.

Щоб отримати запуск SHA-1 (пароль android) ( doc ):

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

Це SHA-1слід додати до налаштувань програми на, firebaseщоб дозволити використання можливостей для входу в Google під час тестування збірки налагодження.


2
Як ви впевнені, що він використовує Firebase?
PaulG

Здогадалися (схожість у коді та без серверів). Проект Firebase також підключений до консолі GCP. Ми також можемо змінити відбитки пальців в облікових даних GCP.
Ніяс Назар

така ж помилка, але в моєму випадку вона не була пов'язана з firebase (я не використовую її).
Majed DH

Перейдіть на console.developers.google.com/apis/credentials .Додайте новий обліковий запис (O Auth Client) за допомогою ключа SHA. (Firebase автоматично робить це для наших проектів firebase)
Ніяс Назар

Файл google-services.json можна знайти в каталозі програм всередині вашого проекту. (Перехід через Finder / File Explorer)
Мехул Тандейл

43

 для помилки 12500 Вам потрібно додати підтримку gmail лише в налаштуваннях firebase, а для помилки 10 - додати відбиток ssh у консолі firebase, як ви бачите на малюнку


хороша і пряма відповідь вперед, Просто налаштував мій обліковий запис на Gmail і бам, він робить все інше
Ajeett

43

Електронна адреса підтримки, а також усі посилання на проекти та конфіденційність необхідні для роботи Google SignIn, інакше вона кидає 12500.

Встановіть його на https://console.developers.google.com/apis/credentials у нижній частині другої вкладки під назвою "Екран згоди OAuth" - там ви знайдете три посилання, які потрібно налаштувати.

Це не згадується БІЛЬШЕ в посібниках Firebase.


3
Дякую, це працює на мене. Я витрачав майже цілі дні на вирішення проблеми
Крішан Кумар Шарма

2
Дякую, я щойно додав один із "авторизованих доменів" до посилань на конфіденційність і все працювало. Ви врятували мені кілька годин спроб та помилок 💌
Коко

На це слід прийняти відповідь. Я боровся з цим 2 дні, без жодного успіху. Google повинен оновлювати посібники, оскільки їх документація вводить в оману, їх посібник ніколи не працюватиме, а код помилки нічого не говорить
user1209216

1
куди додати посилання на конфіденційність?
Шихаб Уддін

4
На другій вкладці під назвою "Екран згоди на OAuth" - внизу форми у вас є три посилання
zub0r

21

Спробуйте оновити екран згоди OAuth на https://console.developers.google.com/apis/credentials


3
Мені довелося додати електронну пошту підтримки, і тоді вона почала працювати. Це було в задумі.
Адарш

Також потрібні всі посилання на проекти та конфіденційність, інакше він кидає 12500. Про це ніде не йдеться.
zub0r

@ посилання на zub0r не потрібні. Джерело: Я просто обійшвся без них.
easycheese

18

Я на деякий час застряг у цьому.

Переконайтеся, що ці кроки виконуються-

  • Правильний ключ SHA зберігається на консолі Firebase.
  • Завантажте останню версію google-service.json
  • І останнє та найголовніше згоду Зберегти OAuth під обліковими записами в google api, OAuth Screen. Це знадобилось багато часу, щоб розібратися. І це добре спрацювало після цього.

6
Ну. це має бути прийнята відповідь на 2019 рік тут. google дивним чином "повинен" оновити вміст у OAuth Consent
mochadwi

1
Фу, ще один голос за це. Цілком була моя незрозуміла проблема.
easycheese

12

Здається, ваш SHA1 перезаписаний в ігровому магазині Google. Завітайте у свій магазин Google Play, панель запуску, підписуючи програму, перевірте, чи в додатку Google Play додатково додано SHA1.

І скопіюйте цей SHA1, додавши у відповідне місце, зробив би цю роботу.


1
Боже мій! Дякую за цю пораду! Пакети додатків створили свій власний SHA1, тому ключі випуску, які використовуються локально (під час генерації APK), вже не є правильним.
Цзя Це

Це найбільш заплутаний робочий процес. Але дякую за пораду
DarkNeuron

5

Якщо там ще є хто з подібною проблемою, якщо ви додаєте власні області застосування, переконайтеся, що це дійсна область застосування. У моєму випадку я змішав сфери Facebook з областями Google і зайняв час, щоб це зрозуміти!


5

Я використовую Firebase Authentication. Мій SHA-1 вказано правильно, ідентифікатор клієнта також був правильним, але я все одно отримував 12500.

Виявилося, що моя проблема полягала в тому, що я не вказав електронну пошту підтримки в налаштуваннях проекту. (Налаштування -> вкладка Загальні -> розділ вашого проекту (Загальнодоступні налаштування)).


3
Те ж саме сталося і зі мною. Існують серйозні проблеми з документацією щодо служб Google. Я б хотів, щоб вони задокументували подібні проблеми або принаймні показали зручну для користувача помилку.
ashish-

4

Перейдіть до свого проекту в консолі Firebase, відкрийте Налаштування проекту, додайте туди свої відбитки сертифікатів SHA. Завантажте оновлений файл google-services.json та додайте його до папки додатків Projects.

Це працювало для мене.

Скріншот консолі Firebase


3

Я думаю, що помилка виникла з неправильного SHA1. Будь ласка, не забувайте, що SHA1 відрізняється між режимом випуску та налагодження в студії Android. Замість використання keytool для отримання SHA1, ви можете скористатися проектом Gradle -> Завдання -> android -> підписати репортаж в студії Android (можна відкрити його за допомогою меню Перегляд -> Інструментальне вікно -> gradle), щоб отримати реліз і налагодити SHA1. Після цього для зручної роботи вам потрібно створити 2 окремі облікові дані з двома SHA1 на хмарній консолі google (Google просто вказує створити 1 за допомогою випуску SHA1, коли ми розробляємо це не буде працювати, оскільки він використовує налагодження SHA1).


3

Спочатку переконайтеся, що ви зареєстрували додаток у програмі консолі розробників google

Переконайтеся, що у вашій програмі Firebase є debugі releaseключі, і ключі. Якщо ця помилка з’являється у виробництві, додайте свій SHA-1 release keyдодаток у базу пожеж. Якщо вона з’являється в розробці, додайте свій 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 () повернув помилку та код 12500. Зрештою, це було те, що хтось інший встановив мій OAuth своїм SHA1 замість мого ключа налагодження. Це і виправило.
Відчайдушний

@Reckless Я радий, що це допомогло!
Ден

2

Для мене проблемою було використання ClientID "випуску" з моєю програмою, налаштованої на налагодження. Переконайтеся, що у вас є ключі випуску та налагодження, використовуючи відповідно кожну SHA-1.


2

Якщо ви приїжджаєте сюди з трепетом : це один із найважливіших випадків, які ми маємо виправити відповідно до документації тут: https://pub.dev/packages/google_sign_in введіть тут опис зображення

  • Перейдіть до API та сервісів Google
  • Виберіть додаток, до якого потрібно ввійти в систему google.
  • Потім натисніть Увімкнути APIS та послуги

введіть тут опис зображення

  • Потім знайдіть API Google Peoples

введіть тут опис зображення

  • Відкрийте карту API Google People і натисніть увімкнути, ваш додаток може позбутися проблеми.

2

Коли ваша програма підтверджує автентифікацію за допомогою сервера резервного сервера або отримує доступ до API Google з вашого сервера, тоді вам потрібно передати ідентифікатор клієнта OAuth 2.0, створений для вашого сервера, методу requestIdToken під час створення об’єкта GoogleSignInOptions для доступу до основної інформації користувача про профіль. . Крім того, не забудьте надіслати електронну пошту про підтримку на екрані згоди OAuth, знайденому на сторінці "Повноваження" на консолі API.


1

Також може статися так, що компілятор cordova не в змозі знайти належний файл зберігання ключів.



Рішення: Перед виконанням ionic cordova build androidвкажіть властивості підписання

Крок 1 : Створення файлу зберігання ключів налагодження

Виконай команду

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

Використовувати пароль: android

Крок 2: Скопіюйте файл сховища ключів ( debug.keystore) з ~/.androidдо platform/androidдиректорії поточного проекту

Крок 3: Створіть файл з ім'ям release-signing.properties в platform/androidкаталозі

Крок 4: Додайте вміст у файл

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

Примітка. Це значення за замовчуванням. Якщо ви надали власні псевдоніми та пароль, то використовуйте їх відповідно.

Крок 5: Тепер будуйтеionic cordova build android


1

Я відчув таку ж проблему після відкриття свого проекту на іншому комп’ютері (в іншій Android Studio). У моєму випадку я вирішив це за допомогою Firebase Assistant, який я використовував для налаштування Firebase спочатку. Відкрив Помічник Firebase (Інструменти> Firebase) та вибрав Аутентифікація> Підключитися. Це відновило проект до Firebase та оновило конфігу


1

Я застряг у випуску Google Login з 2 тижня, нарешті його добре відсортував. Поясніть мені причину. Питання було пов'язане з вогневою базою. У 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. Я змінюю свій ключ на ключ, вказаний у google-services.json(під oauth_clientоб’єктом)


0

Переконайтеся, що у вас правильно налаштовані такі речі:

  1. Створіть ідентифікатор клієнта у вашому проекті Google.
  2. Надайте належний ключ SHA-1 для цього ідентифікатора клієнта. (налагодження / випуск)
  3. Укажіть належну назву пакета для цього ідентифікатора клієнта.
  4. Переконайтеся , що ви згенерували ідентифікатор клієнта в strings.xml, google-services.jsonабо credentials.jsonфайл.

0

https://developers.google.com/identity/sign-in/android/sign-in виконуйте цю документацію api, але майте на увазі, що всередині WEB_CLIENT_ID використовується значення ідентифікатора клієнта, яке генерується у файлі 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)
                }
            }
}

0

У моєму випадку після додавання відбитків пальців у консолі Firebase він автоматично підбирається консоллю розробника Google і показує відбитки пальців. Але вхід не працював. Переглянувши кожен крок, я зрозумів, що Google скасував мій пакет файлів маніфестів, як цей com.xxxxxxxx.app. Але це насправді app.xxxxxxxx.comв консолі розробника Google. Тож я видалив авто, створив відбиток і додав відбиток пальця з правильною назвою пакета. БУМ !!. Це спрацювало.



0

Переконайтеся, що у вашому проекті не повинно бути спеціальних символів, зокрема числових чи будь-яких символів (назва проекту має бути простим як com.google.testproject)


Це виклик Назва пакету проекту не назва проекту
b devloper

0

У моєму випадку я працював над невиробничим додатком. Проблема полягала в тому, що при створенні проекту в консолі firebase виникали проблеми синхронізації клавіш SHA-1 вперед і назад з консолей розробника Firebase і Google. Отже, я вирішив створити проект спочатку на консолі розробника Google, а потім вибрати його під час створення нового проекту на консолі Firebase.

Я також зробив підручник для цього, який може вам допомогти.


0

У моєму випадку проблема полягала в тому, що мій емулятор не мав Play Store. Я створив емулятор (з назвою API 23) через Visual Studio, тому що я розвиваюсь також за допомогою Xamarin.Forms, і в диспетчері пристроїв Visual Studio ви можете вибрати, чи повинен ваш емулятор мати Google Play Store.

Довелося створити емулятор через AVD Android Studio і переконатися, що в ньому є Play Store:

введіть тут опис зображення


0

У моєму випадку ця помилка сталася через те, що аутентифікацію Android було видалено старшою командою, оскільки, схоже, немає необхідності в андроїд-ключі для аутентифікації бекенда. Отже, для входу в google потрібні як Android, так і веб-клієнтські ключі.


-1

Спробуйте скористатися цими параметрами:

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

Тут буде запропоновано ввести пароль і просто ввести пароль. Ви можете побачити відбитки пальців SHA1, MD5.

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.