Starting from Version firebase_auth 0.18.0:

In the newest version of firebase_auth, the class FirebaseUser was changed to User, and the class AuthResult was changed to UserCredential. Therefore change your code to the following:

    Future<User> currentUser() async {
      final GoogleSignInAccount account = await googleSignIn.signIn();
      final GoogleSignInAuthentication authentication =
          await account.authentication;

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

      final UserCredential authResult =
          await _auth.signInWithCredential(credential);
      final User user = authResult.user;

      return user;
    }

FirebaseUser changed to User

AuthResult changed to UserCredential

GoogleAuthProvider.getCredential() changed to GoogleAuthProvider.credential()


onAuthStateChanged which notifies about changes to the user's sign-in state was replaced with authStateChanges()

currentUser() which is a method to retrieve the currently logged in user, was replaced with the property currentUser and it no longer returns a Future<FirebaseUser>.

Example of the above two methods:

FirebaseAuth.instance.authStateChanges().listen((event) {
   print(event.email);
});

And:

var user = FirebaseAuth.instance.currentUser;
print(user.uid);

Deprecation of UserUpdateInfo class for firebaseUser.updateProfile method. Example:

Future updateName(String name, FirebaseUser user) async {
  var userUpdateInfo = new UserUpdateInfo();
  userUpdateInfo.displayName = name;
  await user.updateProfile(userUpdateInfo);
  await user.reload(); 
}

now

import 'package:firebase_auth/firebase_auth.dart' as firebaseAuth;
Future updateName(String name, auth.User firebaseUser) async {
  firebaseUser.updateProfile(displayName: name);
  await firebaseUser.reload();
}

Since firebase_auth 0.18.0, the class FirebaseUser was changed to User


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


Run

flutter pub get

Then rebuild your app.


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;
        });
      }
    }
  }