使用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);
}

谢谢,成功了