使用 FirebaseUser 出错 - 表示已弃用 [重复]
Posted
技术标签:
【中文标题】使用 FirebaseUser 出错 - 表示已弃用 [重复]【英文标题】:Getting error using FirebaseUser - says deprecated [duplicate] 【发布时间】:2021-03-04 04:32:37 【问题描述】:我是Flutter
的初学者,我正在尝试第一次将Firebase
与 Flutter 集成。我有几个错误,一一清除,但最后一个是我卡住的地方。我实际上正在尝试进行电子邮件/密码身份验证。你能帮忙吗
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');
elsereturn null;
,
child: Text('Login'),
color: Colors.blueAccent[400],
)
]
)
),
)
),
);
void signUpWithEmailPassword()
async
FirebaseUser user;
user = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
错误内容如下:“UserCredential”类型的值无法分配给“FirebaseUser”类型的变量。 尝试更改变量的类型,或将右侧类型转换为 'FirebaseUser'.dartinvalid_assignment
【问题讨论】:
【参考方案1】:UserCredential userCredential = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
像这样试试。
【讨论】:
【参考方案2】:已弃用意味着它以前在以前的版本中可用,但现在不再受支持。在这种情况下,他们已弃用 FirebaseUser 类。因此,您必须使用 UserCredential 类。
void signUpWithEmailPassword()
async
UserCredential user;
user = await mAuth.createUserWithEmailAndPassword(email: emailController.text, password: passwordController.text);
【讨论】:
以上是关于使用 FirebaseUser 出错 - 表示已弃用 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
什么用例有 FirebaseUser 的 reload() 功能?
参数类型“Type”不能分配给参数类型“FirebaseUser”
注册时尝试向 Firebase 用户添加新的数据字段,但 FirebaseUser.class 文件中没有更新 X 方法
Flutter:带有 onAuthStateChanged 的 StreamProvider<FirebaseUser> 始终返回 null 作为第一个值