电子邮件地址格式错误,[firebase_auth/invalid-email]

The email address is badly formatted, [firebase_auth/invalid-email]

这是我的代码.. 这是 运行 成功,没有错误,但是一旦我点击注册按钮,它就会抛出错误。

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(MaterialApp(
    home: Homepage(),
    routes: {
      '/home': (context) {
        return Homepage();
      },
      '/first': (context) {
        return First_Page();
      },
    },
  ));
}

class Homepage extends StatefulWidget {
  const Homepage({Key? key}) : super(key: key);

  @override
  _HomepageState createState() => _HomepageState();
}

class _HomepageState extends State<Homepage> {
  final Future<FirebaseApp> _initialization = Firebase.initializeApp();
  final _auth = FirebaseAuth.instance;
  final _user = TextEditingController();
  final _pass = TextEditingController();
  String email = '';
  String password = '';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.blue,
        title: Text(
          'Sign-Up',
        ),
        centerTitle: true,
      ),
      body: SingleChildScrollView(
        child: Column(
          children: [
            Padding(
              padding: EdgeInsets.only(top: 250),
            ),
            Container(
              child: TextFormField(
                controller: _user,
                decoration: InputDecoration(
                    hintText: "Email-id",
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.circular(10),
                    )),
              ),
            ),
            SizedBox(
              height: 10,
            ),
            Container(
              child: TextFormField(
                controller: _pass,
                decoration: InputDecoration(
                    hintText: "Password",
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.circular(10),
                    )),
              ),
            ),
            FlatButton(
              color: Colors.blue,
              child: Text('Sign-up'),
              onPressed: () async {
                await Firebase.initializeApp();
                email = _user.toString();
                password = _pass.toString();
                final newuser = await _auth.createUserWithEmailAndPassword(
                  email: email.trim(),
                  password: password.trim(),
                );
                if (newuser != null) {
                  Navigator.pushNamed(context, '/First_Page');
                } else
                  print('Error');
              },
            ),
          ],
        ),
      ),
    );
  }
}

这些是我遇到的所有错误

  E/flutter (10268): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: 
  [firebase_auth/invalid-email] The email address is badly formatted.
  E/flutter (10268): #0      MethodChannelFirebaseAuth.createUserWithEmailAndPassword 
  (package:firebase_auth_platform_interface/src/method_channel
  /method_channel_firebase_auth.dart:272:7)
  E/flutter (10268): <asynchronous suspension>
  E/flutter (10268): #1      FirebaseAuth.createUserWithEmailAndPassword 
  (package:firebase_auth/src/firebase_auth.dart:238:7)
  E/flutter (10268): <asynchronous suspension>
  E/flutter (10268): #2      _HomepageState.build.<anonymous closure> 
  (package:firebase/main.dart:79:31)
   E/flutter (10268): <asynchronous suspension>
   E/flutter (10268): 

并且在 firebase 身份验证中我已经启用了电子邮件登录方法,现在我没有弄错了。 请告诉我。提前致谢..

对于您正在使用的 email 地址:

email=_user.toString();

_user 为:

final _user=TextEditingController()

因此您在 TextEditingController 上调用 toString,这会为您提供该控制器的调试表示。如果您想要来自该控制器的值,您需要使用:

email=_user.value;

要自己发现这类问题,我建议学习设置断点和使用调试器。如果您在调试器中的 _auth.createUserWithEmailAndPassword(这是异常的来源)和 运行 上设置断点,您可以很容易地看到 email 没有您期望的值。从那里开始,应该向后追踪到值的来源,并查看 documentation for TextEditingController 以查看正确的调用。