我有一个带有电子邮件TextFormField的表单,我正在验证他们的用户输入数据,然后进行注册,并相应地显示错误,因为所有字段均有效,并使用firebase调用函数进行注册,并且如果用户中存在相同的电子邮件,它会给我错误“ ERROR_EMAIL_ALREADY_IN_USE”,我只想在电子邮件TextFormField下面显示此电子邮件已在使用中的错误。
onPressed: () {
if (_formKey.currentState.validate()) {
print('form is valid');
AuthService()
.signUp(emailController.text,
passwordFirstField.text).catchError((err) => {
})
.then((userId) {
AuthService().signUpAsAClient(
userId, usernameController.text);
});
Navigator.of(context).pushNamed(
'/professionals_list',
);
} else {
print('form is not valid');
}
}
需要显示错误消息,表明Firebase已经在使用该电子邮件。
答案 0 :(得分:0)
在这样的小部件的上定义String
变量
String _errorEmail;
这是文本字段的代码
TextField(
controller: _tecEmail,
style: TextStyle(color: Colors.white, fontSize: 18.0),
decoration: InputDecoration(
errorText: _errorEmail,
errorStyle:
TextStyle(color: Colors.red, fontSize: 14.0),
labelText: "Email Address",
labelStyle: TextStyle(
fontSize: 18.0, color: Colors.white70),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white)),
focusedBorder: UnderlineInputBorder(
borderSide:
BorderSide(color: Constants.appThemeColor),
),
contentPadding: const EdgeInsets.only(
left: 10, right: 10, top: 10, bottom: 10)),
keyboardType: TextInputType.emailAddress,
),
如果通过电子邮件发送的邮件已经存在,则添加错误消息
setState(() {
if (//condition or check if email exist) {
_errorEmail = "emailid already exist";
return;
}
_errorEmail = null;
});