如何解决'Future '不是'FirebaseUser'错误类型的子类型

问题描述 投票:0回答:1

我有一个FirebaseActions类,它正在为我进行注册和登录。我在其中添加了getCurrentUser方法。我从HomeScreen小部件调用该函数。我需要将返回的值(type = FirebaseUser)放入我的HomeScreen中的变量中,才能到达loggingInUser.email。但是我得到这个错误。我的问题;有什么方法可以将FirebaseUser类型数据转换为Future类型变量?当我在HomeScreen而不是FirebasAction类中编写此函数时,它可以工作,但这是最佳实践吗?

FirebaseActions类

static getCurrentUser(context) async {
    final user = await _auth.currentUser().catchError((error) {
      Scaffold.of(context).showSnackBar(AppSnackBar.appSnackBar(error.message));
    });

    if (user != null) {
      return user;
    }
  }

HomeScreen小部件

class _HomeScreenState extends State<HomeScreen> {

  FirebaseUser loggedInUser;

  @override
  void initState() {
    super.initState();
    loggedInUser = FirebaseActions.getCurrentUser(context);
    print(loggedInUser.toString());
  }
firebase flutter future
1个回答
0
投票

未指定方法的返回类型,并且方法也是异步的,因此必须在调用的地方等待。

 static Future<FirebaseUser> getCurrentUser(context) async {

也,在呼叫处添加等待。

loggedInUser = await FirebaseActions.getCurrentUser(context);
© www.soinside.com 2019 - 2024. All rights reserved.