I am trying to implement deleteUser function in cognito which allows the user to delete their own account information by using this code

void deleteUser() async {
    try {
      await Amplify.Auth.deleteUser();

      final state = AuthState(authFlowStatus: AuthFlowStatus.none);
      authStateController.add(state);
      print('Delete user succeeded');
    } on AmplifyException catch (e) {
      print('Delete user failed with error: $e');
    }
  }

However, this code of course is not working for some reason and I don't know why. I also have the user's database in Amplify datastore graphql so I tried deleting the user's datastore data first before getting rid of the user's congnito data but it still does not work. This is the code that I am using to delete user's data from datastore. Please help me out by telling me how I can delete a user's cognito and datastore data.

void deleteUser (DeleteUserData data) async {
    (await Amplify.DataStore.query(User.classType, where: User.EMAIL.eq(data.email)))
        .forEach((element) async {
          try {
            await Amplify.DataStore.delete(element);
            print('Deleted a user');
          } on DataStoreException catch (e) {
            print('Delete failed: $e');
          }
    });
  }

Please help me out.


Solution 1: Asdgvarela

I was facing the same problem, I took a look into the insides of deleteUser method in the AWS api, something I strongly recommend, and I discovered that this API is only available in iOS.

screenshot

I was using amplify_auth_cognito: 0.4.5 and amplify_flutter: 0.4.5.

Upgraded the libraries to 0.5.1 and the warning has disappeared, maybe you can try using a different version of yours (I'm not using Amplify, just simple Cognito).

Cheers.