错误:参数类型“TextEditingController”无法分配给参数类型“String”。在 FLUTTER 中

Era*_*çük 3 dart firebase flutter

我的signup.dart 文件:

\n
    import 'package:firebase_auth/firebase_auth.dart';\nimport 'package:flutter/material.dart';\n\nclass SignUp extends StatefulWidget {\n  @override\n  _SignUpState createState() => _SignUpState();\n}\n\nclass _SignUpState extends State<SignUp> {\n  final FirebaseAuth firebaseAuth = FirebaseAuth.instance;\n  final _formKey = GlobalKey<FormState>();\n  TextEditingController _emailTextController = TextEditingController();\n  TextEditingController _passwordTextController = TextEditingController();\n  TextEditingController _nameTextController = TextEditingController();\n  TextEditingController _confirmPasswordTextController =\n      TextEditingController();\n  String gender;\n  String groupValue = "Erkek";\n\n  bool loading = false;\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      body: Stack(\n        children: <Widget>[\n          Image.asset(\n            'images/backg.jpg',\n            fit: BoxFit.fill,\n            width: double.infinity,\n            height: double.infinity,\n          ),\n          Container(\n            color: Colors.black.withOpacity(0.4),\n            width: double.infinity,\n            height: double.infinity,\n          ),\n          Padding(\n            padding: const EdgeInsets.only(top: 200.0),\n            child: Center(\n              child: Form(\n                  key: _formKey,\n                  child: ListView(\n                    children: <Widget>[\n                      Padding(\n                        padding:\n                            const EdgeInsets.fromLTRB(14.0, 8.0, 14.0, 8.0),\n                        child: Material(\n                          borderRadius: BorderRadius.circular(20.0),\n                          color: Colors.white.withOpacity(0.4),\n                          elevation: 0.0,\n                          child: Padding(\n                            padding: const EdgeInsets.only(left: 12.0),\n                            child: ListTile(\n                              title: TextFormField(\n                                controller: _passwordTextController,\n                                decoration: InputDecoration(\n                                  hintText: "Ad Soyad",\n                                  icon: Icon(Icons.person),\n                                    border: InputBorder.none\n                                ),\n                                // ignore: missing_return\n                                validator: (value) {\n                                  if (value.isEmpty) {\n                                    return "\xc4\xb0sim bo\xc5\x9flu\xc4\x9fu doldurulmal\xc4\xb1d\xc4\xb1r.";\n                                  }\n                                  return null;\n                                },\n                                // ignore: missing_return\n                              ),\n                              trailing: Icon(Icons.remove_red_eye),\n                            ),\n                          ),\n                        ),\n                      ),\n\n                      Padding(\n                        padding:\n                            const EdgeInsets.fromLTRB(14.0, 8.0, 14.0, 8.0),\n                        child: Material(\n                          borderRadius: BorderRadius.circular(20.0),\n                          color: Colors.white.withOpacity(0.4),\n                          elevation: 0.0,\n                          child: Padding(\n                            padding: const EdgeInsets.only(left: 12.0),\n                            child: TextFormField(\n                                controller: _emailTextController,\n                                decoration: InputDecoration(\n                                  hintText: "Email",\n                                  icon: Icon(Icons.email),\n                                    border: InputBorder.none\n                                ),\n                                // ignore: missing_return\n                                validator: (value) {\n                                  if (value.isEmpty) {\n                                    Pattern pattern =\n                                        r'^(([^<>()[]\\.,;:\\s@"]+(.[^<>()[]\\.,;:\\s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$';\n                                    RegExp regex = new RegExp(pattern);\n                                    if (!regex.hasMatch(value))\n                                      return "L\xc3\xbctfen ge\xc3\xa7erli bir mail adresi giriniz.";\n                                    else\n                                      return null;\n                                  }\n                                }),\n                          ),\n                        ),\n                      ),\n                      Padding(\n                        padding: const EdgeInsets.fromLTRB(14.0, 8.0, 14.0, 8.0),\n                        child: new Container(\n                          color: Colors.white.withOpacity(0.4),\n                          child: Row(\n                            children: <Widget>[\n                              Expanded(\n                                  child: ListTile(\n                                    title: Text(\n                                      "Erkek",\n                                      textAlign: TextAlign.end ,\n                                      style: TextStyle(color: Colors.white),\n                                    ),\n                                    trailing:  Radio(value: "Erkek", groupValue: groupValue, onChanged: (e)=>valueChanged(e)),\n                                  )),\n                              Expanded(\n                                  child: ListTile(\n                                    title: Text(\n                                      "Kad\xc4\xb1n",\n                                      textAlign: TextAlign.end ,\n                                      style: TextStyle(color: Colors.white),\n                                    ),\n                                    trailing:  Radio(value: "Kad\xc4\xb1n", groupValue: groupValue, onChanged: (e)=>valueChanged(e)),\n                                  )),\n                            ],\n                          ),\n                        ),\n                      ),\n                      Padding(\n                        padding:\n                            const EdgeInsets.fromLTRB(14.0, 8.0, 14.0, 8.0),\n                        child: Material(\n                          borderRadius: BorderRadius.circular(20.0),\n                          color: Colors.white.withOpacity(0.4),\n                          elevation: 0.0,\n                          child: Padding(\n                            padding: const EdgeInsets.only(left: 12.0),\n                            child: ListTile(\n                              title: TextFormField(\n                                controller: _passwordTextController,\n                                obscureText: true,\n                                decoration: InputDecoration(\n                                  hintText: "\xc5\x9eifre",\n                                  icon: Icon(Icons.lock_outline),\n                                    border: InputBorder.none\n                                ),\n                                // ignore: missing_return\n                                validator: (value) {\n                                  if (value.isEmpty) {\n                                    return "\xc5\x9eifre bo\xc5\x9flu\xc4\x9fu doldurulmal\xc4\xb1d\xc4\xb1r.";\n                                  } else if (value.length < 6) {\n                                    return "\xc5\x9eifre 6 haneden uzun olmal\xc4\xb1!";\n                                  }\n                                  return null;\n                                },\n                                // ignore: missing_return\n                              ),\n                                trailing : IconButton(icon: Icon(Icons.remove_red_eye), onPressed: (){})\n                            ),\n                          ),\n                        ),\n                      ),\n                      Padding(\n                        padding:\n                            const EdgeInsets.fromLTRB(14.0, 8.0, 14.0, 8.0),\n                        child: Material(\n                          borderRadius: BorderRadius.circular(20.0),\n                          color: Colors.white.withOpacity(0.4),\n                          elevation: 0.0,\n                          child: Padding(\n                            padding: const EdgeInsets.only(left: 12.0),\n                            child: ListTile(\n                              title : TextFormField(\n                                controller: _confirmPasswordTextController,\n                                obscureText: true,\n                                decoration: InputDecoration(\n                                  hintText: "\xc5\x9eifreyi Do\xc4\x9frula",\n                                  icon: Icon(Icons.lock_outline),\n                                  border: InputBorder.none\n                                ),\n                                // ignore: missing_return\n                                validator: (value) {\n                                  if (value.isEmpty) {\n                                    return "\xc5\x9eifre bo\xc5\x9flu\xc4\x9fu doldurulmal\xc4\xb1d\xc4\xb1r.";\n                                  } else if (value.length < 6) {\n                                    return "\xc5\x9eifre 6 haneden uzun olmal\xc4\xb1!";\n                                  }else if (_passwordTextController != value){\n                                    return "\xc5\x9eifreler uyu\xc5\x9fmuyor.";\n                                  }\n                                  return null;\n                                },\n                                // ignore: missing_return\n                              ),\n                                trailing : IconButton(icon: Icon(Icons.remove_red_eye), onPressed: (){}),\n                            ),\n                          ),\n                        ),\n                      ),\n                      Padding(\n                        padding:\n                            const EdgeInsets.fromLTRB(12.0, 8.0, 12.0, 8.0),\n                        child: Material(\n                            borderRadius: BorderRadius.circular(20.0),\n                            color: Colors.red.withOpacity(0.8),\n                            elevation: 0.0,\n                            child: MaterialButton(\n                              onPressed: () {\n                                validateForm();\n                              },\n                              minWidth: MediaQuery.of(context).size.width,\n                              child: Text(\n                                "Kay\xc4\xb1t Ol",\n                                textAlign: TextAlign.center,\n                                style: TextStyle(\n                                    color: Colors.white,\n                                    fontWeight: FontWeight.bold,\n                                    fontSize: 15.0),\n                              ),\n                            )),\n                      ),\n                      Padding(\n                          padding: const EdgeInsets.all(8.0),\n                          child: InkWell(\n                              onTap: () {\n                                Navigator.pop(context);\n                              },\n                              child: Text(\n                                "Giri\xc5\x9f Yap",\n                                textAlign: TextAlign.center,\n                                style: TextStyle(color: Colors.red),\n                              ))),\n                    ],\n                  )),\n            ),\n          ),\n          Visibility(\n              visible: loading ?? true,\n              child: Center(\n                child: Container(\n                  alignment: Alignment.center,\n                  color: Colors.white.withOpacity(0.9),\n                  child: CircularProgressIndicator(\n                    valueColor: AlwaysStoppedAnimation<Color>(Colors.red),\n                  ),\n                ),\n              ))\n        ],\n      ),\n    );\n  }\n\n  valueChanged(e) {\n    setState(() {\n      if (e == "Erkek") {\n        groupValue = e;\n        gender = e;\n      } else if (e == "Kad\xc4\xb1n") {\n        groupValue = e;\n        gender = e;\n      }\n    });\n  }\n\n  void validateForm() async{\n    FormState formState =   _formKey.currentState;\n    if(formState.validate()){\n      User user = await firebaseAuth.currentUser;\n      if(user == null){\n        firebaseAuth.createUserWithEmailAndPassword(email: _emailTextController, password: _passwordTextController).then((user) => {\n\n        });\n      }\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我的显示错误。

\n

正在执行热重载...\n将文件同步到设备 sdk gphone x86...\nlib/pages/signup.dart:276:60: 错误: 参数类型“TextEditingController”无法分配给参数类型“String” 。

\n
    \n
  • 'TextEditingController' 来自 'package:flutter/src/widgets/editable_text.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/editable_text.dart')。\nfirebaseAuth.createUserWithEmailAndPassword(email :_emailTextController,密码:_passwordTextController).then((user) => {\n^\nlib/pages/signup.dart:276:92:错误:参数类型“TextEditingController”无法分配给参数类型“细绳'。

    \n
  • \n
  • 'TextEditingController' 来自 'package:flutter/src/widgets/editable_text.dart' ('/C:/src/flutter/packages/flutter/lib/src/widgets/editable_text.dart')。\nfirebaseAuth.createUserWithEmailAndPassword(email : _emailTextController, 密码: _passwordTextController).then((user) => {\n^\n==========新错误==================

    \n

    void validateForm() async {\nFormState formState = _formKey.currentState;\nif (formState.validate()) {\nUser user = wait firebaseAuth.currentUser;\nif (user == null) {\nfirebaseAuth\n.createUserWithEmailAndPassword(\ nemail: _emailTextController.text,\n密码: _passwordTextController.text)\n.then((user) => {

    \n
               _userServices.createUser(\n               {\n             "username": _nameTextController.text,\n               "email": user.email\n             }\n\n           )\n     });\n   }\n }\n
    Run Code Online (Sandbox Code Playgroud)\n

    }\n}

    \n
  • \n
\n

小智 11

使用_emailTextController.text而不只是_emailTextController.