'Undefined class 'FirebaseUser'

I'm new to Flutter. I have an Issue with Firebase Auth/ Google Auth The FirebaseUser is not defined Code:

FirebaseAuth _auth = FirebaseAuth.instance;
GoogleSignIn googleSignIn = GoogleSignIn();

Future<FirebaseUser> currentUser() async { // The Issue is here in the Future<>
  final GoogleSignInAccount account = await googleSignIn.signIn();
  final GoogleSignInAuthentication authentication =
      await account.authentication;

  final GoogleAuthCredential credential = GoogleAuthProvider.getCredential(
      idToken: authentication.idToken, accessToken: authentication.accessToken);

  final AuthResult authResult = await _auth.signInWithCredential(credential);
  final FirebaseUser user = authResult.user; // and here as I can't define this FirebaseUser object to return

  return user;
}

Pubspec.yml

dependencies:
  flutter:
    sdk: flutter


  cupertino_icons: ^0.1.3
  firebase_auth: ^0.18.0
  location: ^3.0.2
  page_transition: ^1.1.6
  google_sign_in: ^4.5.1
  flutter_facebook_login: ^3.0.0
  firebase_database: ^4.0.0

I also face the same issue with AuthResult

final AuthResult authResult = await _auth.signInWithCredential(credential);


Solution 1:[1]

Since firebase_auth 0.18.0, the class FirebaseUser was changed to User

Solution 2:[2]

In the newest version of firebase_auth, the class FirebaseUser was changed to User, and the class AuthResult was changed to UserCredentail. Therefore change FirebaseUser to User

Solution 3:[3]

The class FirebaseUser was changed to User

try this way

 _registerUser() async {
    try {
      final User? user =
          (await FirebaseAuth.instance.signInWithEmailAndPassword(
        email: emailCtrl.text,
        password: passCtrl.text,
      ))
              .user;
      FirebaseFirestore.instance.collection('users').doc().set({
        'name': nameCtrl.text,
        'uid': user!.uid,
        'email': user.email,
        'isEmailVerified': user.emailVerified, // will also be false
        'photoUrl': user.photoURL, // will always be null
      });
      print("Created");
    } catch (e) {
      print(e.toString());
    }
  }

Solution 4:[4]

Run

flutter pub get

Then rebuild your app.

Solution 5:[5]

This can be your signin function with email and password as of Sept 2020.Initialze app is a new introduced method we must at least call once before we use any other firebase methods.

 Future<void> signin() async {
    final formState = _formkey.currentState;
    await Firebase.initializeApp();
    if (formState.validate()) {
      setState(() {
        loading = true;
      });
      formState.save();
      try {
        print(email);
        final User user = (await FirebaseAuth.instance
                .signInWithEmailAndPassword(email: email, password: password))
            .user;
      } catch (e) {
        print(e.message);
        setState(() {
          loading = false;
        });
      }
    }
  }

Solution 6:[6]

Since firebase_auth 0.18.0, the class FirebaseUser was changed to User

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 User
Solution 2 Maann
Solution 3 Abir Ahsan
Solution 4 sleepingkit
Solution 5 Pratham Sarankar
Solution 6 Tushar Mahmud