android - 尝试注册用户时出现错误

标签 android firebase flutter dart

尝试注册用户时出现此错误。
错误:无法将类型“AuthResult”的值分配给“FirebaseUser”类型的变量。 (位于[projectfooddelivery] lib \ Src \ models \ user.dart:28处的invalid_assignment)。当我尝试在Firebase中创建用户时,我无能为力。我想知道如何解决此错误,以及如何测试我的应用是否正确连接到Firebase。

码:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/cupertino.dart';
import 'package:scoped_model/scoped_model.dart';

class UserModel extends Model{
    FirebaseAuth _auth=FirebaseAuth.instance;
    FirebaseUser firebaseUser;
    Map<String,dynamic> userData=Map();
    bool isLoading=false;



  void signIn()async{
 isLoading=true;
 notifyListeners();
 await Future.delayed(Duration(seconds: 3));
 isLoading=false;
 notifyListeners();
  }
 void signUp({@required Map<String,dynamic>userData,@required String pass,@required VoidCallback onSuccess,@required VoidCallback onFail} ){
   isLoading=true;
   notifyListeners();
   _auth.createUserWithEmailAndPassword(
       email: userData["email"],
       password: pass
   ).then((user)async{
     firebaseUser=user;
     await _saveUserData(userData);
     onSuccess();
     isLoading=false;
     notifyListeners();
   }).catchError((e){
     onFail();
     isLoading=false;
     notifyListeners();
   });

 }
 void recoverPass(){

 }
 Future<Null> _saveUserData(Map<String,dynamic>userData)async{
   this.userData=userData;
   await Firestore.instance.collection("users").document(firebaseUser.uid).setData(userData);
 }
}

最佳答案

错误在这里:

   _auth.createUserWithEmailAndPassword(
       email: userData["email"],
       password: pass
   ).then((user)async{
     firebaseUser=user;

方法createUserWithEmailAndPassword返回Future<AuthResult>,因此user的类型为AuthResult,而firebaseUser的类型为FirebaseUser。您需要执行以下操作:
   _auth.createUserWithEmailAndPassword(
       email: userData["email"],
       password: pass
   ).then((user)async{
     firebaseUser = user.user;
     print(firebaseUser.uid);
AuthResult包含属性 user ,该属性返回FirebaseUser类型的当前用户

关于android - 尝试注册用户时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61849684/

相关文章:

dart - ListView 不刷新,而附加列表会刷新(Flutter)

android - 主要内容可从抽屉导航框架访问。

java - Android:填写表单数据并提取 HTML

android - 屏幕旋转时 fragment Activity 崩溃

swift - 如何正确使用queryOrderedByValue

flutter - 当状态代码在单独的文件中定义时, ListView 不显示

listview - Flutter 在 ListView 中显示 GridView

安卓工作室 Gradle : Error:Configuration with name 'compile' not found

firebase - Flutter/Firestore- 'List<dynamic>'类型不是 'Widget'类型的子类型

Firebase 动态链接 |短链接不会直接在手机上打开