Android Parse.com通过指针查询用户

Android Parse.com通过指针查询用户,android,pointers,parse-platform,Android,Pointers,Parse Platform,我在使用指针查询用户数据时遇到问题,因此这是我的表(类): _使用者 应用程序将崩溃,因此我使用了另一个帮助行query.include(“writerId”)直接获取用户名,但此行: map.setwriter((String) post.get("username")); 也会使应用程序崩溃,当我删除它时,应用程序工作正常,因此在我的情况下,如何通过指针writerId从用户类中获取用户名?我不知道确切的Java语法,但当您包含writerId,然后想获取该writerId用户的用户名时

我在使用指针查询用户数据时遇到问题,因此这是我的表(类):

_使用者

应用程序将崩溃,因此我使用了另一个帮助行
query.include(“writerId”)
直接获取用户名,但此行:

map.setwriter((String) post.get("username")); 

也会使应用程序崩溃,当我删除它时,应用程序工作正常,因此在我的情况下,如何通过指针writerId从用户类中获取用户名?

我不知道确切的Java语法,但当您包含writerId,然后想获取该writerId用户的用户名时,必须首先从Post的writerId中获取用户对象。。比如:
(String)((ParseUser)post.get(“writerId”).get(“username”)

指针列的命名有点误导,因为该列不包含ID。你应该叫它writer

要获取用户名,请执行以下操作:

query.include("writerId");
query.findInBackground(new FindCallback<ParseObject>() {
    public void done(List<ParseObject> postList, ParseException e) {
        if (e == null) {
            for (ParseObject post : postList) {                
                ParseObject writer = post.getParseObject("writerId");
                String userName = writer.getString("username");
                // .. (do whatever with userName)
            }
        } else {
            Log.d("post", "Error: " + e.getMessage());
        }
    }
});
query.include(“writerId”);
findInBackground(新的FindCallback(){
公共作废完成(列表postList,parsee异常){
如果(e==null){
对于(ParseObject post:postList){
ParseObject writer=post.getParseObject(“writerId”);
字符串用户名=writer.getString(“用户名”);
//..(使用用户名执行任何操作)
}
}否则{
Log.d(“post”,“Error:+e.getMessage());
}
}
});

谢谢,这很有效。问题在于行查询;一旦删除,你的线路工作良好
 variables_posts = new ArrayList<VariablesPosts>();
    ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
    query.selectKeys(Arrays.asList("post"));
    query.include("writerId");
    on = query.find();
    for (ParseObject post : on) {
          VariablesPosts map = new VariablesPosts();
           map.setWriter((String) post.get("username"));
           map.setPost((String) post.get("post"));
           variables_posts.add(map);}
map.setWriter((String) post.get("writerId")); 
map.setwriter((String) post.get("username")); 
query.include("writerId");
query.findInBackground(new FindCallback<ParseObject>() {
    public void done(List<ParseObject> postList, ParseException e) {
        if (e == null) {
            for (ParseObject post : postList) {                
                ParseObject writer = post.getParseObject("writerId");
                String userName = writer.getString("username");
                // .. (do whatever with userName)
            }
        } else {
            Log.d("post", "Error: " + e.getMessage());
        }
    }
});