Flutter:提交错误代码时电话验证firebase_auth出错

时间:2020-01-23 04:16:07

标签: flutter firebase-authentication

为什么我在文本字段中键入错误代码时遇到错误并卡住了?

void _signInWithPhoneNumber(String smsCodes) async {
    final AuthCredential credential = PhoneAuthProvider.getCredential(
      verificationId: verificationId,
      smsCode: smsCodes,
    );

    FirebaseAuth _auth = FirebaseAuth.instance;
    final FirebaseUser user =
        await _auth.signInWithCredential(credential).then((user) {
      Navigator.of(context).pop();

      Navigator.of(context)
          .push(MaterialPageRoute(builder: (context) => SuksesPhone()));
    }).catchError((e) {
      print(e);
      Navigator.of(context).pop();

      setState(() {
        canClick = true;
      });
    });
  }

但是当我输入正确的代码时,没有错误。

错误是这样的。 enter image description here

1 个答案:

答案 0 :(得分:0)

不确定100%,但是我认为应该是这样。使用await时,请勿使用then

void _signInWithPhoneNumber(String smsCodes) async {
    final AuthCredential credential = PhoneAuthProvider.getCredential(
      verificationId: verificationId,
      smsCode: smsCodes,
    );

    FirebaseAuth _auth = FirebaseAuth.instance;

    final FirebaseUser user =
        await _auth.signInWithCredential(credential).catchError((onError{
          //do something           
        }));

        //check user  
if(user){

      Navigator.of(context)
          .push(MaterialPageRoute(builder: (context) => SuksesPhone()));
}
  }