您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Flutter:如何使用Firebase PhoneNumberAuth修复设备丢失的连接错误

Flutter:如何使用Firebase PhoneNumberAuth修复设备丢失的连接错误

pop删除顶级窗口小部件。不确定在此之后加上逻辑是一个好主意。最好重新安排代码,例如

  // Only gets SMS, no functionality
  Future<String> getSmsCode(BuildContext context) {
    return showDialog<String>(
      context: context,
      barrierDismissible: false,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('SMS ??? ??????'),
          content: TextField(
            onChanged: (value) {
              this.smsCode = value;
            },
          ),
          contentPadding: EdgeInsets.all(10),
          actions: <Widget>[
            FlatButton(
              child: Text('Done'),
              onPressed: () {
                Navigator.of(context).pop(this.smsCode);
              },
            )
          ],
        );
      },
    );
  }


  SIGNIn() async {
    String smsCode = await getSmsCode(context);
    if (smsCode != null && !smsCode.isNotEmpty) {
      print('User cancelled SMS dialog');
      return;
    }
    final AuthCredential credential = PhoneAuthProvider.getCredential(
      verificationId: verificationId,
      smsCode: smsCode,
    );
    print('???');
    FirebaseAuth _auth = FirebaseAuth.instance;
    final FirebaseUser user = (await _auth.signInWithCredential(credential)).user;
    final FirebaseUser currentUser = await _auth.currentUser();
    assert(user.uid == currentUser.uid);
    setState(() {
      if (user != null) {
        print('success!');
      } else {
        print('sign in Failed');
      }
    });
  }

现在仅调用SIGNIn,它将首先获取SMS代码,然后使用该SMS代码登录。希望能帮助到你。

其他 2022/1/1 18:13:37 有700人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶