该表达式不会计算为函数,因此在使用 auth.currentUser 时无法调用它

Kar*_*ios 2 javascript firebase firebase-authentication google-cloud-firestore

我是 flutter 新手...我正在尝试获取当前登录用户的状态并使用 firebase 通知侦听器,但我收到此错误,The expression doesn't evaluate to a function, so it can't be invoked.auth.currentUser我不明白为什么。

下面是我的代码。

_initialize() async{
    SharedPreferences prefs = await SharedPreferences.getInstance();
    bool loggedIn = prefs.getBool(LOGGED_IN) ?? false;
    if(!loggedIn){
      _status = Status.Unauthenticated;
    }else{
      await auth.currentUser().then((currentUser) async{
        _user = currentUser;
        _status = Status.Authenticated;
        _userModel = await _userServices.getUserById(currentUser.uid);
      });

    }
    notifyListeners();
  }
}
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 7

看起来您正在使用带有最新库的过时教程。currentUser现在是一种属性,而不是一种方法。也不再需要await它,所以:

if(!loggedIn){
  _status = Status.Unauthenticated;
}else{
  _user = auth.currentUser;
  _status = Status.Authenticated;
  _userModel = await _userServices.getUserById(currentUser.uid);
}
Run Code Online (Sandbox Code Playgroud)

另请参阅有关使用身份验证的FlutterFire 文档,并且currentUser() 不是工作类型,为什么我看到表达式的计算结果不为函数,因此无法调用它