0

我有 4 个文本表单字段。一个用于电子邮件、用户名和 2 个密码字段。他们都有适当的验证。除了我想检查两个密码是否相同的密码字段。不知道如何做那部分。我还有一个注册按钮,我想从这 4 个文本表单字段中收集输入并将其发送到注册按钮以使用 firebase 注册一个新帐户。如何让我的注册按钮接受这些表单输出?

表格截图

4

3 回答 3

0

您可以使用分配给每个 textformfield 的变量作为 value 属性,并使用 textformfield 中存在的 onchanged 方法为它们分配新值。像这样的东西:

TextFormField(值:_password,onchange:(val){_password = val;})

或者对 textformfield 使用控制器并在提交时获取它们的值:

TextFormField(控制器:_controller)

现在,在按钮上,您可以执行您的功能或调用具有以下功能的方法:

RaisedButton ( onPressed: () { /// 从控制器获取数据附加到 textformfield String password = _controller.text;

//// Firebase 身份验证代码在这里。})

于 2020-10-18T07:14:37.397 回答
0

您可以将控制器添加到您的四个TextField.

final _dataController = TextEditingController();

单击提交按钮时,您可以通过此获取值

String data = _dataController.text;
于 2020-10-18T06:34:09.823 回答
0

为了检查密码和确认密码是否相同,您可能必须在表单验证中添加条件部分。

您可以像这样注册用户:

String _email;
String _password; //add these two to the validation and set the value state = to these fields respectively.

try {
         UserCredential userCredential = await 
         FirebaseAuth.instance.createUserWithEmailAndPassword(
         email: _email,
         password: _password
      );
    } on FirebaseAuthException catch (e) {
      if (e.code == 'weak-password') {
        print('The password provided is too weak.');
      } else if (e.code == 'email-already-in-use') {
        print('The account already exists for that email.');
      }
    } catch (e) {
      print(e);
    }

有关更多信息,请参阅

于 2020-10-18T06:42:41.463 回答