Hola. Espero le sirva a alguien de ayuda.
En la parte donde esta “await .signInWithCredential”, no retorna un objeto FirebaseUser sino un objeto AuthResult, del cual pueden obtener un FirebaseUser.
Aquí les comparto el código que me funcionó:
AuthResult authResult = await _auth.signInWithCredential(
GoogleAuthProvider.getCredential(idToken: googleAuth.idToken, accessToken: googleAuth.accessToken)
);
FirebaseUser user = await authResult.user;
También si les interesa, pueden hacer login con Facebook de esta manera:
Future<FirebaseUser> facebookSignIn() async{
final result = await _facebookLogin.logInWithReadPermissions(['email']);
switch (result.status) {
case FacebookLoginStatus.loggedIn:{
AuthResult authResult = await _auth.signInWithCredential(
FacebookAuthProvider.getCredential(accessToken: result.accessToken.token)
);
FirebaseUser user = authResult.user;
return user;
break;
}
case FacebookLoginStatus.cancelledByUser:{
print("cancelado por usuario");
break;
}
case FacebookLoginStatus.error:{
print("Error: "+result.errorMessage.toString());
break;
}
}
}
o también con Correo y Contraseña:
Future<FirebaseUser> emailAndPasswordSignIn(String email, String password) async{
AuthResult authResult = await _auth.signInWithEmailAndPassword(email: email, password: password);
FirebaseUser user = authResult.user;
return user;
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.