Флаттер и плагин google_sign_in: PlatformException (sign_in_failed, com.google.android.gms.common.api.ApiException: 10:, null) - PullRequest
0 голосов
/ 06 февраля 2019

Диалог (форма Google) для учетных данных открывается успешно, но после того, как я заполнил свои учетные данные, я получаю эту ошибку.Я следовал инструкциям здесь .Создал проект Firebase, включил Google Drive API (это то, что мне сейчас нужно) из консоли API Google.

Код, выдавший исключение:

final GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: [
    'https://www.googleapis.com/auth/drive',
  ],
);

await _googleSignIn.signIn();

Это трассировка стека:

E/flutter ( 5068): [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
E/flutter ( 5068): PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
E/flutter ( 5068): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:551:7)
E/flutter ( 5068): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:292:18)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #2      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:226:58)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #3      GoogleSignIn._addMethodCall (package:google_sign_in/google_sign_in.dart:268:20)
E/flutter ( 5068): #4      GoogleSignIn.signIn (package:google_sign_in/google_sign_in.dart:339:48)
E/flutter ( 5068): #5      ThatsMyComponentState.theSignInFuction.<anonymous closure> (package:my_app/widgets/my_file.dart:666:45)
E/flutter ( 5068): <asynchronous suspension>
E/flutter ( 5068): #6      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
E/flutter ( 5068): #7      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
E/flutter ( 5068): #8      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter ( 5068): #9      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
E/flutter ( 5068): #10     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:204:7)
E/flutter ( 5068): #11     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter ( 5068): #12     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:184:20)
E/flutter ( 5068): #13     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
E/flutter ( 5068): #14     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
E/flutter ( 5068): #15     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
E/flutter ( 5068): #16     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
E/flutter ( 5068): #17     _invoke1 (dart:ui/hooks.dart:168:13)
E/flutter ( 5068): #18     _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)

Версия плагина google_sign_in - 4.0.0.

Это вывод flutter doctot -v :

[√] Flutter (Channel stable, v1.0.0, on Microsoft Windows [Version 10.0.17763.253], locale en-US)
• Flutter version 1.0.0 at C:\src\flutter-0.7.3\flutter
• Framework revision 5391447fae (10 weeks ago), 2018-11-29 19:41:26 -0800
• Engine revision 7375a0f414
• Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
• Android SDK at C:\Users\myuser\AppData\Local\Android\Sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = C:\Users\myuser\AppData\Local\Android\Sdk
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)
• All Android licenses accepted.

[√] Android Studio (version 3.3)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin version 32.0.1
• Dart plugin version 182.5124
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1248-b01)

[!] IntelliJ IDEA Community Edition (version 2018.1)
• IntelliJ at C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.6
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
• For information about installing plugins, see
  https://flutter.io/intellij-setup/#installing-the-plugins

[!] VS Code, 64-bit edition (version 1.30.2)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension not installed; install from
  https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[√] Connected device (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 8.1.0 (API 27) (emulator)

! Doctor found issues in 2 categories.

Любая помощь будет высоко ценится.Спасибо!

Ответы [ 9 ]

0 голосов
/ 25 июля 2019

Одной из причин возникновения этой ошибки может быть то, что вы не заполнили форму согласия Google OAuth.Это новое изменение в Firebase.

Вот шаги, которые необходимо выполнить, чтобы заполнить форму согласия для вашего приложения:

  1. Перейдите в консоль Google API (в настоящее время наhttps://console.developers.google.com), убедитесь, что вы вошли в свою учетную запись, под которой создан ваш проект firebase.
  2. Выберите ваш проект в раскрывающемся списке «выберите проект» в левом верхнем углу консоли разработчика.
  3. В левой панели перейдите к «учетным данным», а затем переключитесь на «Экран согласия OAuth».
  4. В поле «Имя приложения» введите публичное имя приложения
  5. В разделе «Логотип приложения»."загрузить локальный файл изображения вашего приложения
  6. В разделе" Электронная почта поддержки "введите тот же адрес электронной почты поддержки, указанный в вашем приложении Firebase.

Теперь ваш экран должен выглядеть следующим образомпример за шагом 6

Прокрутите вниз и заполните "Ссылку на домашнюю страницу приложения", "Ссылку на политику конфиденциальности приложения" и "Ссылку на условия использования приложения", добавив http:// перед авторизованным доменом, в котором находится ваше приложение firebase.

Вот выделенный пример того, как эти области должны быть заполнены в шаге 7

Нажмите Сохранить

Эти шаги сработали для меня!Хотя ссылка может и не существовать, я бы хотел сослаться на источник этого решения здесь

0 голосов
/ 15 августа 2019

В проекте флаттера работает следующее решение:

Шаг 1: Генерация ключей SHA1 и SHA256 .
Шаг 2: Добавьте обаSHA1 и SHA256 для ведения огня. (в настройках вашего приложения)
Шаг 3. Загрузите google-services.json в android / app в папке вашего проекта.
Шаг 4: В вашем терминале выполните команду flutter clean.
Шаг 5: Запустите приложение флаттера.

Для получения дополнительной информации посетите:
https://developers.google.com/android/guides/client-auth
https://firebase.google.com/docs/flutter/setup

0 голосов
/ 07 июня 2019

Мне не нужно было добавлять дополнительные SHA, я понял, что не включил метод входа в Google на вкладке Аутентификация в Консоль Firebase

Enabling google sign-in method in Firebase console

0 голосов
/ 14 июня 2019

Я перепробовал все выше и ничего не получалось.Моя ошибка заключалась в том, что у меня на диске было несколько папок с версией для Android, и в настройках Firebase я использовал неверный ключ SHA1.

0 голосов
/ 02 июня 2019

При регистрации приложения в Firebase я изменил свой applicationId на то, что подходит моему приложению.Однако это привело к тому, что на моем телефоне было установлено второе приложение Flutter, когда я запустил отладчик (конечно, из-за изменения applicationId).Таким образом, вещь, которая работала для моей ситуации, заключалась в remove установке и re-install приложении.

0 голосов
/ 01 июня 2019

Когда я столкнулся с этой проблемой, я попробовал все другие решения, описанные в этом посте.Ничто из этого не сработало.В конце концов я понял это: в моей ситуации я должен был убедиться, что у меня есть «электронная почта поддержки».

Public Setting Support Email

0 голосов
/ 08 мая 2019

Дополнительные шаги, которые вы, возможно, должны предпринять, чтобы google_sign_in заработал:

][2]

  • Если вы можете запустить Google Sign In во время отладки, но НЕ в выпуске, есть большая вероятность того, что вы не добавили SHA1 и SHA256 вашего ключа разблокировки в базу данных Firebase.SHA, используйте keytool -list -v -keystore ~/key.jks -alias key

console В итоге вы должны набрать не менее 6 учетных данных SHA : 2 из ключа отладки, 2из ссылки на Google Play, и 2 из ключа релиза. Обратите внимание, что вам не нужно повторно скачивать файл google-services.json после добавления учетных данных SHA релиза в firebase.

Firebase

# Flutter Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

# GooglePlay Services
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
-keep class com.google.common.** { *; }
-dontwarn com.google.common.**
0 голосов
/ 14 февраля 2019

Я столкнулся с той же проблемой только сейчас.Это может произойти, если вы работаете в режиме отладки и вы не зарегистрировали отпечаток ша в firebase.Я решил это, сгенерировав debug.keystore и зарегистрировав его в приложении на Firebase.Не забудьте скачать новый google-services.json после этого.См. Также https://developers.google.com/android/guides/client-auth

enter image description here

0 голосов
/ 07 февраля 2019

В android / app / build.gradle Я изменил зависимости с com.android.tools.build: gradle: 3.1.3 / com.google.gms: google-services: 3.2.1 до com.android.tools.build: gradle: 3.2.1 / com.google.gms: google-services: 4.2.0 .И это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...