You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter点击注册按钮报firebase_auth/invalid-email邮箱格式错误求助

问题根源
  • 核心错误是输入框内容获取方式错误:你直接调用TextEditingController的toString()方法,拿到的是控制器对象本身的描述字符串,并非用户输入的邮箱/密码文本,传给Firebase的内容不符合邮箱格式规则,因此抛出格式错误。
  • 同时存在两个隐含错误:
    1. 你已经在main函数中完成了Firebase初始化,按钮点击回调中重复调用Firebase.initializeApp()属于多余操作
    2. 你注册的路由路径是/first,跳转时写的是/First_Page,路径不匹配后续会触发路由找不到的报错
修复方案

只需要替换按钮点击回调的逻辑即可,修正后的代码如下:

FlatButton(
  color: Colors.blue,
  child: Text('Sign-up'),
  onPressed: () async {
    // 去掉重复的Firebase初始化逻辑
    // 通过.text属性获取输入框的真实输入内容
    email = _user.text;
    password = _pass.text;
    try {
      final newuser = await _auth.createUserWithEmailAndPassword(
        email: email.trim(),
        password: password.trim(),
      );
      if (newuser.user != null) {
        // 路由路径要和注册的路径保持一致
        Navigator.pushNamed(context, '/first');
      }
    } catch (e) {
      // 补充异常捕获方便后续排查问题
      print('注册失败:$e');
    }
  },
)
额外优化建议
  • 可以给输入框增加前置格式校验,提交前先判断输入内容是否符合邮箱格式,减少不必要的接口请求
  • 密码输入框补充obscureText: true属性,隐藏输入的密码内容
  • 目前你使用的FlatButton已经在新版Flutter中被废弃,可以替换为TextButton或者ElevatedButton适配新版本

内容的提问来源于stack exchange,提问作者Praveen Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:15:07