gpt4 book ai didi

firebase - Flutter Google 登录错误未被捕获

转载 作者:行者123 更新时间:2023-12-03 02:59:55 29 4
gpt4 key购买 nike

我正在使用 google 登录和 firebase 将身份验证集成到我的应用程序中。但是我面临的问题是,当我取消登录时(在我关闭弹出窗口的意义上),我得到一个

PlatformException (PlatformException(sign_in_canceled, com.google.GIDSignIn, The user canceled the sign-in flow.))
据我所知,这应该会发生,尽管我面临的问题是我无法捕捉到错误。以下是我 try catch 此错误的几种方法:
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');
});
同样,发生错误时它不会打印任何内容。
非常感谢你们,我真的很感谢你们的帮助!

最佳答案

我已经修复了这个错误,我发现 .catchError()在 Debug模式下没有调用回调(当您单击 VSCode 中的 Run->Start Debugging 按钮时)。
但是,当您输入 flutter run -d 时,.catchError()方法被回调,因为它不处于 Debug模式。
要获得您喜欢的模拟器的代码,请将这行代码粘贴到终端中:

instruments -s devices
如果这不起作用,您也可以尝试粘贴:
xcrun simctl list
.catchError()方法将不像以前那样被调用,并且里面的代码将按预期执行!
此外,应用程序不会再因 PlatformException() 而崩溃。相反,您会得到这样的日志:
[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'uid' was called on null.
Receiver: null
我在 Google 登录中也遇到过这个问题,其中 .catchError()没有被调用!
总之,如果您在处理 Firebase 身份验证错误时遇到了一些错误,您应该首先尝试通过终端运行。谢谢,我希望这会有所帮助!

关于firebase - Flutter Google 登录错误未被捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62832625/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com