0

그래서 나는 안드로이드에 aws 시크릿을 설정했습니다. 그리고 사용자가 사용자 이름을 입력 할 때, 그 사용자 이름이 이미 내인지 풀에 존재하지 않는지 확인하기 위해 검사를 수행하려고합니다. 내가 넣어 무엇이든, 그것은 검사에 돌아 가야하지 않습니다에 cognitoUser 단지 설정됩니다,cognito - android에서 기존 사용자를 확인하는 방법은 무엇인가요?

cognitoUser = userPool.getUser(username_ET.getText().toString()); 
if(cognitoUser.getUserId().isEmpty()) 
{ 
     //Great, this is a new user. 
} 

그러나 :

현재 나는이 있습니다.

누군가 도움을 줄 수 있기를 바랍니다.

답변

1

존재하지 않는 사용자 이름으로 로그인을 시도하면 UserNotFoundException 예외가 발생합니다.

+0

그래 난 이미 얻을. 이 줄에서 :'userPool.signUpInBackground (username_ET.getText(). toString(), password_ET.getText(). toString(), userAttributes, null, signupCallback);'나는 try/catch를 시도했으나 할 수있다. 예외를 로그 아웃하지 않습니다. 그냥 시도를 실행하고 잡으러 가지 않습니다. 그 예외를 어떻게 로그 아웃 하시겠습니까? – TheQ

+0

모든 예외가 콜백 (onError)을 통해 전달되면 try, catch 블록을 사용하여 예외를 가져올 수 없습니다. –

+0

이런 이런 바보, 미안. 알 겠어! – TheQ

-1

내 질문에 대한 답은 다음과 같습니다

 SignUpHandler signupCallback = new SignUpHandler() { 

      @Override 
      public void onSuccess(CognitoUser cognitoUser, boolean userConfirmed, CognitoUserCodeDeliveryDetails cognitoUserCodeDeliveryDetails) 
      { 
       Log.d(COGNITO_REGISTER, "sign up succeeded!"); 

      } 
      @Override 
      public void onFailure(Exception exception) 
      { 
       Log.d(COGNITO_REGISTER, "sign up failed!"); 
       Log.d(COGNITO_REGISTER, exception.getMessage()); 

       // Sign-up failed, check exception for the cause 
      } 
     }; 
     userPool.signUpInBackground(username_ET.getText().toString(), password_ET.getText().toString(), userAttributes, null, signupCallback); 
관련 문제