Flutter Google Войти в ноль - PullRequest
0 голосов
/ 07 октября 2018

После отладки в течение нескольких часов без какого-либо результата я сдался.Я изучал Flutter, создавая приложение, которое подключается к базе данных Firebase в реальном времени, которая работает в режиме отладки и локальной установки через adb.Но всякий раз, когда я (или кто-либо из моих друзей) устанавливаю пакет, хотя это и не то, что adb (например, менеджер пакетов или что-то еще), у меня возникают проблемы.

Для начала вот соответствующая часть моего pubspec.yaml:

dependencies:
  google_sign_in: 3.2.1
  firebase_auth: 0.5.20
  firebase_core: 0.2.5

В начале моего виджета statefull:

final FirebaseAuth _fAuth = FirebaseAuth.instance;
final GoogleSignIn _gSignIn = new GoogleSignIn();
final DatabaseReference database = FirebaseDatabase.instance.reference().child("users");

И соответствующая часть моего кода:

googleSignInAccount = await _gSignIn.signIn(); // [1]
authentication = await googleSignInAccount.authentication; // [2]

...

_firebaseUser = await _fAuth.signInWithGoogle(
    idToken: authentication.idToken,
    accessToken: authentication.accessToken);

...

Итак, проблема в том, чтос более старой версией 3.0.5 пакета google_sign_in я получаю сообщение об ошибке:

PlatformException(sign_in_failed, Status{statusCode=CANCELED, resolution=null}, null)

Уже в пункте [1], даже если диалог входа никогда не отменялся, только после выбора учетной записи Googleиспользовать.Это никогда не происходит в режиме отладки, как будто Google отклоняет производственное приложение при входе в систему.Когда я обновляю пакет google_sign_in до версии 3.2.1, в точке [2] я получаю следующее сообщение:

NoSuchMethodError: The getter 'authentication' was called on null.
Receiver: null
Tried calling: authentication

Это означает, что шаг [1] больше не приводит к ошибке, а просто возвращаетноль, и как таковой он терпит неудачу на шаге [2].У меня нет этой проблемы в режиме отладки, поэтому в процессе входа в систему не должно быть ничего плохого.

Примечание: я использую локальное хранилище ключей для подписи, но у меня никогда не возникало проблем с этим.Примечание 2: я также сделал с ними проблему, так как не могу найти ничего похожего на мою проблему, см. здесь .

1 Ответ

0 голосов
/ 25 октября 2018

См. Страницы с вопросами ( здесь ), в которых эта проблема решена путем обновления до google_sign_in версии 3.2.2, в которой произошла явная ошибка, поэтому я действительно мог решить эту проблему.

В конце концовэто не имеет ничего общего с самим флаттером (хотя это и библиотека google_sing_in не помогают), но с хранилищами ключей.Всегда хранилища ключей.

...