После отладки в течение нескольких часов без какого-либо результата я сдался.Я изучал 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: я также сделал с ними проблему, так как не могу найти ничего похожего на мою проблему, см. здесь .