与'有关的问题;FirebaseUser';未来

与'有关的问题;FirebaseUser';未来,firebase,flutter,firebase-authentication,google-signin,Firebase,Flutter,Firebase Authentication,Google Signin,在一个新项目中,我在使用Firebase实现Google登录时遇到了一个问题,即表达式的计算结果不是函数。在过去的一年里,该代码已经在我的其他项目中发挥了作用。这是我的密码: class FirebaseAuthService { final FirebaseAuth _firebaseAuth; final GoogleSignIn _googleSignIn; FirebaseAuthService({FirebaseAuth firebaseAuth, GoogleSignI

在一个新项目中,我在使用Firebase实现Google登录时遇到了一个问题,即表达式的计算结果不是函数。在过去的一年里,该代码已经在我的其他项目中发挥了作用。这是我的密码:

class FirebaseAuthService {
  final FirebaseAuth _firebaseAuth;
  final GoogleSignIn _googleSignIn;

  FirebaseAuthService({FirebaseAuth firebaseAuth, GoogleSignIn googleSignin})
      : _firebaseAuth = firebaseAuth ?? FirebaseAuth.instance,
        _googleSignIn = googleSignin ?? GoogleSignIn();

  Account _userFromFirebase(User user) {
    if (user == null) {
      return null;
    }
    return Account(
      uid: user.uid,
      email: user.email,
      displayName: user.displayName,
      photoUrl: user.photoURL,
    );
  }

  Stream<Account> get onAuthStateChanged {
    return _firebaseAuth.onAuthStateChanged.map(_userFromFirebase);
  }

  Future<Account> signInAnonymously() async {
    final authResult = await _firebaseAuth.signInAnonymously();
    return _userFromFirebase(authResult.user);
  }

  Future<Account> signInWithGoogle() async {
    final googleUser = await _googleSignIn.signIn();
    final googleAuth = await googleUser.authentication;
    final credential = GoogleAuthProvider.credential(
      accessToken: googleAuth.accessToken,
      idToken: googleAuth.idToken,
    );
    final authResult = await _firebaseAuth.signInWithCredential(credential);
    return _userFromFirebase(authResult.user);
  }

  Future<void> signOut() async {
    return _firebaseAuth.signOut();
  }

  Future<Account> currentUser() async {// The Issue is here in the Future<>
    final user = await _firebaseAuth.currentUser();
    return _userFromFirebase(user);
  }
}
类FirebaseAuthService{
最终FirebaseAuth_FirebaseAuth;
最终谷歌签名(googlesign);;
FirebaseAuthService({FirebaseAuth FirebaseAuth,GoogleSignIn GoogleSignIn})
:_firebaseAuth=firebaseAuth??firebaseAuth.instance,
_谷歌签名=谷歌签名??谷歌签名();
帐户\u userFromFirebase(用户){
if(user==null){
返回null;
}
返回帐户(
uid:user.uid,
电子邮件:user.email,
displayName:user.displayName,
photoUrl:user.photoUrl,
);
}
流得到更改{
返回_firebaseAuth.onAuthStateChanged.map(_userFromFirebase);
}
Future name()异步{
final authResult=等待_firebaseAuth.signinanoymously();
返回\u userFromFirebase(authResult.user);
}
未来登录使用Google()异步{
final googleUser=Wait_googleSignIn.signIn();
final googleAuth=等待googleUser.authentication;
最终凭证=GoogleAuthProvider.credential(
accessToken:googleAuth.accessToken,
idToken:googleAuth.idToken,
);
最终身份验证结果=使用凭证(凭证)等待firebaseAuth.Signin;
返回\u userFromFirebase(authResult.user);
}
Future signOut()异步{
返回_firebaseAuth.signOut();
}
Future currentUser()async{//问题在未来
最终用户=等待_firebaseAuth.currentUser();
返回\u userFromFirebase(用户);
}
}

在最新版本的
firebase_-auth
(0.18.0+1)中,没有
currentUser
功能,并且不会返回
未来的
。对许多FlatterFire软件包进行了重大的破坏性更改,这些更改可能改变了该语法,您可能在不查看这些破坏性更改的更改日志的情况下更新了软件包

获取现在已更改为getter,不再返回
Future

currentUser
功能应修改为以下内容:

Account currentUser(){
最终用户=_firebaseAuth.currentUser;
返回\u userFromFirebase(用户);
}

请编辑问题,以便更清楚地指出问题所在以及完整的错误消息。