Я использую вход в Google и firebase для интеграции аутентификации в свое приложение. Однако я столкнулся с проблемой: когда я отменяю вход (в том смысле, что я закрываю всплывающее окно), я получаю
PlatformException (PlatformException(sign_in_canceled, com.google.GIDSignIn, The user canceled the sign-in flow.))
Насколько мне известно, это должно происходить, хотя я сталкиваюсь с проблема в том, что я не могу отловить ошибку. Вот несколько способов, которыми я пытался отловить эту ошибку:
Future loginWithGoogle() async {
final GoogleSignIn googleSignIn = GoogleSignIn();
var account;
try {
account = await googleSignIn.signIn();
} on PlatformException catch (e) {
print('\n\n\n\n\n AN ERROR OCCURED \n\n\n\n\n');
print(e.message);
}
final AuthResult result = await _auth
.signInWithCredential(GoogleAuthProvider.getCredential(
idToken: (await account.authentication).idToken, accessToken: (await account.authentication).accessToken));
setState(() {
_firestore.collection('Users').document('${result.user.uid}').setData({
'Profile Picture': result.user.photoUrl,
'Name': result.user.displayName,
'Email ID': result.user.email,
'Phone Number': result.user.phoneNumber,
});
isAuthenticating = true;
});
if (result.user.phoneNumber == null) {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => PhoneRegistrationScreen(
result: result,
),
),
);
}
}
Он ничего не печатает, когда возникает ошибка. Я также попытался отловить ошибку с помощью обратного вызова catchError ():
account = await googleSignIn.signIn().catchError((error) {
print('AN ERROR OCCURED');
});
Опять же, он ничего не печатает, когда возникает ошибка.
Большое спасибо, ребята, и я очень признателен за вашу помощь!