我只是通过使用正确的代码调用 verifyPhoneNumber(...) 来完成它的工作。 但错误的代码崩溃了应用程序。尝试过 try/catch 但没有被捕获。以下是代码
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!')));
}
}
答案 0 :(得分:0)
尝试使用通用的 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!')));
}