I am trying to log in using firebase using the Google Login in and trying to register a username and account. Basically any authentication process i try to do i get the following error:
Unhandled Exception: type ‘List<Object?>’ is not a subtype of type ‘PigeonUserDetails?’ in type cast
Here is the code for my google login in and registering using username and password:
class LoginAccountBloc extends Bloc<LoginAccountEvent, LoginAccountState> {
LoginAccountBloc() : super(LoginAccountInitial()) {
on<LoginAccountSubmitted>(
(event, emit) async {
emit(LoginAccountSubmitting());
try {
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: event.email,
password: event.password,
);
emit(LoginAccountSuccessful());
} on FirebaseAuthException catch (e) {
if (e.code == 'user-not-found') {
emit(LoginAccountFailure('No user found for that email.'));
} else if (e.code == 'wrong-password') {
emit(LoginAccountFailure('Wrong password provided for that user.'));
} else {
emit(LoginAccountFailure(e.toString()));
}
}
},
);
}
}
class RegisterAccountBloc
extends Bloc<RegisterAccountEvent, RegisterAccountState> {
RegisterAccountBloc() : super(RegisterAccountInitial()) {
on<RegisterAccountSubmitted>(
(event, emit) async {
print(event.username);
print(event.email);
print(event.password);
emit(RegisterAccountSubmitting());
if (event.username.isEmpty ||
event.email.isEmpty ||
event.password.isEmpty) {
emit(RegisterAccountFailure("All fields are required."));
return;
}
print('All fields are written');
try {
// Step 1: Create a new user with Firebase Authentication
final credential =
await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: event.email,
password: event.password,
);
print('Added Credentials to FirebaseAuth');
} on FirebaseAuthException catch (e) {
if (e.code == 'weak-password') {
emit(RegisterAccountFailure('The password provided is too weak.'));
} else if (e.code == 'email-already-in-use') {
emit(RegisterAccountFailure(
'The account already exists for that email.'));
} else {
emit(RegisterAccountFailure(e.toString()));
}
}
try {
CollectionReference users =
FirebaseFirestore.instance.collection('User');
print("Trying to add");
await users.add({
'username': event.username,
'email': event.email,
'password': event.password
});
print("User Created");
emit(RegisterAccountSuccess());
} catch (error) {
emit(RegisterAccountFailure(error.toString()));
}
},
);
}
}
I tried to debug for hours but no signs of any change at this point. It was working before firebase started showing this message in the authentication tab.
==> Cross origin redirect sign-in is no longer supported in many browsers. Update your app to ensure your users can continue to sign into your app.
2
Answers
there is nothing wrong with your code, this is a firebase auth issue, I was facing the same, all did was update firebase_auth and firebase_core to the latest version, and re-run the app, that solved the issue in my case.
See here for more details:
i am getting a similar problem also: W/System (11937): Ignoring header X-Firebase-Locale because its value was null.
D/EGL_emulation(11937): app_time_stats: avg=334.20ms min=21.00ms max=526.36ms count=3
W/System (11937): Ignoring header X-Firebase-Locale because its value was null.
D/FirebaseAuth(11937): Notifying id token listeners about user ( UlNOwuxRTyNG0ubaedHoaTvgI6C2 ).
[log] Error during sign-in: type ‘List<Object?>’ is not a subtype of type ‘PigeonUserDetails?’ in type cast. i doest log in, however, then it throws this error. On my emulator, i get a popup saying my credentials were incorrect even though they are.