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'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'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==========新错误==================
\nvoid 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 归档时间: |
|
查看次数: |
13346 次 |
最近记录: |