使用FirebaseUser获取错误-表示已弃用
我是使用FirebaseUser获取错误-表示已弃用,firebase,flutter,firebase-authentication,Firebase,Flutter,Firebase Authentication,我是flatter的初学者,我第一次尝试将Firebase与flatter集成。我犯了好几个错误,一个接一个地清除了,但最后一个就是我被卡住的地方。我实际上正在尝试电子邮件/密码验证。你能帮忙吗 import 'package:flutter/material.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'dart:async'; final FirebaseAuth mAuth = FirebaseAuth
flatter
的初学者,我第一次尝试将Firebase
与flatter集成。我犯了好几个错误,一个接一个地清除了,但最后一个就是我被卡住的地方。我实际上正在尝试电子邮件/密码验证。你能帮忙吗
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'dart:async';
final FirebaseAuth mAuth = FirebaseAuth.instance;
class login extends StatefulWidget{
@override
_loginState createState()=>_loginState();
}
class _loginState extends State<login>{
final _formKey= GlobalKey<FormState>();
TextEditingController emailController = new TextEditingController();
TextEditingController passwordController = new TextEditingController();
//String email='';
//String password='';
@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar( // multiple properties separated by ,
title:Text('Login',
style:TextStyle(color:Colors.black )
),
actions:<Widget>[
FlatButton.icon(onPressed:(){
Navigator.pushNamed(context,'/signup');
}
, icon:Icon(Icons.people), label:Text('Register')),
],
backgroundColor: Colors.lightBlue[200],
centerTitle:true,
),
// actions used for multiple widgets
body:Center(
child: Padding(
padding: EdgeInsets.all(25),
child: Form(
key:_formKey,
child: Column(
children:<Widget>[
TextFormField(
controller: emailController,
validator:(val)=>val.isEmpty?'Enter Email' :null,
autocorrect: true,
autofocus: false,
cursorColor: Colors.blue,
decoration: new InputDecoration(
hintText: 'Email Address',
icon: new Icon(
Icons.people,
)
),
keyboardType: TextInputType.emailAddress,
onChanged:(val){
//email = val;
},
),
SizedBox(height:10.0),
TextFormField(
controller: passwordController,
validator:(val)=>val.length < 6 ?'Enter Password: Length greater than 6' :null,
autocorrect:true,
autofocus: false,
cursorColor: Colors.blue,
decoration: new InputDecoration(
hintText: 'Password',
icon: new Icon(
Icons.mail,
)
),
obscureText: true,
onChanged:(val){
// password=val;
},
),
SizedBox(height:10.0),
RaisedButton(onPressed:(){
if(_formKey.currentState.validate()){
Navigator.pushNamed(context,'/page1_menu');
}
else{return null;}
},
child: Text('Login'),
color: Colors.blueAccent[400],
)
]
)
),
)
),
);
}
void signUpWithEmailPassword()
async {
FirebaseUser user;
user = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
}
}
导入“包装:颤振/材料.省道”;
导入“包:firebase_auth/firebase_auth.dart”;
导入“dart:async”;
final FirebaseAuth mAuth=FirebaseAuth.instance;
类登录扩展StatefulWidget{
@凌驾
_loginState createState()=>\u loginState();
}
类_loginState扩展了状态{
final _formKey=GlobalKey();
TextEditingController emailController=新的TextEditingController();
TextEditingController密码控制器=新的TextEditingController();
//字符串email='';
//字符串密码=“”;
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(//由分隔的多个属性,
标题:文本('登录',
样式:TextStyle(颜色:Colors.black)
),
行动:[
扁平按钮。图标(按下时:(){
Navigator.pushNamed(上下文“/signup”);
}
,图标:图标(Icons.people),标签:文本('Register'),
],
背景颜色:颜色。浅蓝色[200],
标题:对,
),
//用于多个小部件的操作
正文:中(
孩子:填充(
填充:边缘设置。全部(25),
孩子:表格(
键:_formKey,
子:列(
儿童:[
TextFormField(
控制器:emailController,
验证程序:(val)=>val.isEmpty?“输入电子邮件”:null,
自动更正:正确,
自动对焦:错误,
光标颜色:颜色。蓝色,
装饰:新的输入装饰(
hintText:'电子邮件地址',
图标:新图标(
我的朋友们,
)
),
键盘类型:TextInputType.emailAddress,
一旦更改:(val){
//email=val;
},
),
尺寸箱(高度:10.0),
TextFormField(
控制器:密码控制器,
验证程序:(val)=>val.length<6?“输入密码:长度大于6”:null,
自动更正:正确,
自动对焦:错误,
光标颜色:颜色。蓝色,
装饰:新的输入装饰(
hintText:'密码',
图标:新图标(
Icons.mail,
)
),
蒙昧文字:对,
一旦更改:(val){
//密码=val;
},
),
尺寸箱(高度:10.0),
升起按钮(按下时:(){
如果(_formKey.currentState.validate()){
Navigator.pushNamed(上下文“/page1_menu”);
}
else{return null;}
},
子项:文本('Login'),
颜色:Colors.blueAccent[400],
)
]
)
),
)
),
);
}
void signUpWithEmailPassword()
异步的{
FirebaseUser用户;
user=wait mAuth.createUserWithEmailAndPassword(电子邮件:emailController.text,密码:passwordController.text);
}
}
错误内容如下:“UserCredential”类型的值无法分配给“FirebaseUser”类型的变量。
请尝试更改变量的类型,或将右侧类型强制转换为“FirebaseUser”。DARTU分配无效
UserCredential userCredential = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
像这样试试
像这样试试。弃用意味着它以前在以前的版本中可用,但现在不再受支持。在本例中,他们已弃用FirebaseUser类。因此,您必须使用UserCredential类
void signUpWithEmailPassword()
async {
UserCredential user;
user = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
}
弃用意味着以前的版本中使用过它,但现在不再支持它。在本例中,他们已弃用FirebaseUser类。因此,您必须使用UserCredential类
void signUpWithEmailPassword()
async {
UserCredential user;
user = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
}
谢谢,成功了