如何修复 无法将"AuthResult"类型的值分配给类型为"FirebaseUser"的变量



我试图将 firebaseuser 更改为身份验证结果

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">

_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;
}
}

将此分配给 AuthResult 变量,该变量又包含用户,该用户包含 uid。

AuthResult authresult 已包含具有 uid 的用户。 而不是返回 user.uid 返回 authResult.user.uid;

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

相关内容

最新更新