1. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

[Flutter] type 'List<Object?>' is not a subtype of type 'PigeonUserDetails?' in type cast

Discussão em 'Mobile' iniciado por Stack, Outubro 5, 2024 às 17:43.

  1. Stack

    Stack Membro Participativo

    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.

    Continue reading...

Compartilhe esta Página