从Parse查询中获取数据

时间:2015-05-21 18:42:45

标签: android parse-platform

我在使用查询从Parse表/对象获取一些数据时遇到了一些麻烦。我试图简单地进行查询,以查找"发送者"中的当前Parse用户的objectID。柱。当返回该结果时,我想从"接收器"中提取接收者的objectID。与我搜索的用户关联的列。即使我知道数据存在,我仍然得到0结果。这是我的代码:

 private List<String> potentialRelationQuery() {
    mPotentialRelations = new ArrayList<>();
    String currentUserId = mCurrentUser.getObjectId();
    ParseQuery<ParseObject> query3 = ParseQuery.getQuery("PotentialRelation");
    query3.whereEqualTo("sender", currentUserId);
    query3.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> parseObjects, ParseException e) {
            if (e == null) {
                if (parseObjects.size() > 0) {                       
                    for (int i = 0; i < parseObjects.size(); i++) {
                        ParseUser receiver = (ParseUser) parseObjects.get(i).get("receiver");
                        String receiverId = receiver.getObjectId();
                        mPotentialRelations.add(receiverId);
                    }
                }
            } else {
                Log.d("MyApp", "No matching objects returned from request");
            }
        }
    });
    return mPotentialRelations;
}

1 个答案:

答案 0 :(得分:0)

因为findInBackground是对Parse的异步调用,所以mPotentialRelations不可能返回空,因为在potentialRelationQuery方法返回之前,findInBackground查询尚未完成?我知道我有这个问题。既然你不能从内部类中返回数据(即在FindCallback的done方法中),那么编写这种查询方法对我来说从未真正起作用。