【问题标题】:How to show Error on email form field if same email exist in firebase users如果firebase用户中存在相同的电子邮件,如何在电子邮件表单字段上显示错误
【发布时间】:2019-07-10 10:07:17
【问题描述】:

我有一个带有电子邮件 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 使用。

【问题讨论】:

    标签: firebase flutter dart firebase-authentication


    【解决方案1】:

    像这样在小部件的 to 上定义一个 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;
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-05-18
      • 2020-08-31
      • 1970-01-01
      相关资源
      最近更新 更多