首页 > 解决方案 > 如何修复“AuthResult”类型的值无法分配给“FirebaseUser”类型的变量

问题描述

我试图将表单 firebaseuser 更改为 authresults

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
abstract class AuthImplementaion {

}
class Auth implements AuthImplementaion {
  final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
  Future<String> SignIn(String _email, String _password) async{
    FirebaseUser user = await _firebaseAuth.signInWithEmailAndPassword(email: _email, password: _password);
    return user.uid;
  }
}

消息:“AuthResult”类型的值无法分配给“FirebaseUser”类型的变量。尝试更改变量的类型,或将右侧类型转换为“FirebaseUser”

标签: androidfirebaseflutterfirebase-authentication

解决方案


_firebaseAuth.signInWithEmailAndPassword(email: _email, password: _password)返回AuthResult您的错误消息中提到的类似内容。但是AuthResult提供了一个user即是一个FirebaseUser

因此,您还必须调用.user

import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
abstract class AuthImplementaion {

}
class Auth implements AuthImplementaion {
  final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
  Future<String> SignIn(String _email, String _password) async{
    FirebaseUser user = (await _firebaseAuth.signInWithEmailAndPassword(email: _email, password: _password)).user;
    return user.uid;
  }
}

推荐阅读