2013-05-18 3 views
4

안녕하세요,이 코드가 작동하지 않는 이유가 궁금합니다. 특정 사용자를 찾으려면 ParseUser의 사용자 이름 필드를 쿼리하려고하지만 그것은 찾을 수 없다는 것을 계속합니다. ParseUser 개체에서 사용자를 찾는 방법

private void findUserName(String user) { 
     // query the User database to find the passed in user 
     ParseQuery query = ParseUser.getQuery(); 
     query.whereEqualTo("username", user); 
     query.findInBackground(new FindCallback() { 
      @Override 
      public void done(List<ParseObject> objects, ParseException e) { 
       foundUser = (objects.size() != 0); 
      } 
     }); 
    } 

는 여기에 내가 방법에 반환을 couldnt 때문에

if (!foundUser) { 
    errorMessage.setText("Invalid user name"); 
} 

foundUser이 필드 호출 내 방법 ...

+0

어떻게 findUsername()을 호출합니까? foundUser 값을 읽기 전에 쿼리에서 결과를 반환 했습니까? –

+0

메신저 그냥 findUsername foundUser 전에 호출하지만 내 문제는 FindUsername 결과를 반환하지 않는 이유는 ParseUser 개체를 쿼리하는 방법을 잘 모르겠다. – James

답변

15

구문 분석은 사용자가 구문 분석 오브젝트에서 다른 오브젝트를 처리합니다. List<ParseObject> 대신 List<ParseUser>을 사용해야합니다. Parse Android 가이드는 https://parse.com/docs/android_guide#users-querying의 예를 제공합니다. 다음은 Where 절을 사용한 Parse 예제입니다.

ParseQuery<ParseUser> query = ParseUser.getQuery(); 
query.whereEqualTo("username", user); 
query.findInBackground(new FindCallback<ParseUser>() { 
    public void done(List<ParseUser> objects, ParseException e) { 
    if (e == null) { 
     // The query was successful. 
    } else { 
     // Something went wrong. 
    } 
    } 
}); 
+0

사용자 개체를 반환하는 결합 된 쿼리를 만드는 방법을 아는가? Beacuse ParseQuery.or 또는 ParseUser 쿼리를 결합하지 않습니다 .. – Mullazman

1

당신이 현재 사용자를 얻고 싶다면 도움이 될 수 있습니다.

String currentUser = ParseUser.getCurrentUser().getUsername(); 
+0

감사합니다,이 나를 위해 일했다. – John

관련 문제