我试图将 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;
}
}