将已声明的User类型变量赋值为异步函数返回的FirebaseUser类型的Future值时,需要使用await关键字等待异步操作完成获取实际值,再将其赋值给变量。
示例代码如下:
import 'package:firebase_auth/firebase_auth.dart';
class User {
final String name;
final String email;
User({required this.name, required this.email});
}
Future getUser() async {
final FirebaseAuth _auth = FirebaseAuth.instance;
final FirebaseUser? firebaseUser = await _auth.currentUser(); // 使用await等待异步操作完成,获取实际值
return User(name: firebaseUser!.displayName!, email: firebaseUser.email!);
}
void main() async {
final User currentUser = await getUser(); // 将异步函数获取的值赋值给已声明的User类型变量,需要使用await等待异步操作完成获取实际值
print(currentUser.name);
print(currentUser.email);
}