使用 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”类定义吸气剂“实例”

什么用例有 FirebaseUser 的 reload() 功能?

将 FirebaseUser 映射到自定义用户对象

参数类型“Type”不能分配给参数类型“FirebaseUser”

注册时尝试向 Firebase 用户添加新的数据字段,但 FirebaseUser.class 文件中没有更新 X 方法

Flutter:带有 onAuthStateChanged 的​​ StreamProvider<FirebaseUser> 始终返回 null 作为第一个值