flutter - Flutter 电话身份验证 FirebaseAuthInvalidCredentialsException
问题描述
我只是通过使用正确的代码调用 verifyPhoneNumber(...) 来做到这一点。但错误的代码崩溃应用程序。尝试尝试/捕获但没有被捕获。以下是代码
codeSent: (String verificationId, [int forceResendingToken]){
...
onPressed: () async{
final code = _codeController.text.trim();
AuthCredential credential = PhoneAuthProvider.credential(
verificationId: verificationId, smsCode: code
);
try{
UserCredential result = await _firebase_auth.signInWithCredential(credential); //<-- Exception here
User user = result.user;
if(user != null){
await signupParse(token, context);
}
} catch (FirebaseAuthInvalidCredentialsException) { // <---- doesn't get caught here
FocusScope.of(context).unfocus();
_scaffoldkey.currentState
.showSnackBar(SnackBar(content: Text('Invalid code!')));
}
}
解决方案
尝试使用通用Exception或PlatformException而不是FirebaseAuthInvalidCredentialsException来捕获
onPressed: () async{
final code = _codeController.text.trim();
AuthCredential credential = PhoneAuthProvider.credential(
verificationId: verificationId, smsCode: code
);
try{
UserCredential result = await _firebase_auth.signInWithCredential(credential); //<-- Exception here
User user = result.user;
if(user != null){
await signupParse(token, context);
}
} catch (Exception e) { // <---- doesn't get caught here
FocusScope.of(context).unfocus();
_scaffoldkey.currentState
.showSnackBar(SnackBar(content: Text('Invalid code!')));
}
推荐阅读
- c# - 如何使用硒等到下拉选择的选项更改?
- firebase - Flutter 可以每毫秒左右记录一次新帧吗?
- c - 使用原始套接字发送,IPv4 本机数据包
- typescript - 如何使用泛型接口来增强具有附加值类型的现有接口?
- matlab - 从类访问工作区变量
- python - Pandas/python 在一列列表中加入/合并两个数据框
- lighthouse - Lighthouse中observedLargestContentfulPaint和largestContentfulPaint有什么区别?
- r - 在 RShiny 中使用 reactiveValues 更新SelectInput
- java - 无法使用 JMOD 打包已签名的 Java 安全提供程序
- java - 使用 NumberFormat 在 java 中打印货币值