Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从解析查询获取数据_Android_Parse Platform - Fatal编程技术网

Android 从解析查询获取数据

Android 从解析查询获取数据,android,parse-platform,Android,Parse Platform,我在通过查询从解析表/对象获取数据时遇到一些问题。我试图简单地进行一个查询,在“sender”列中查找当前解析用户的objectID。当返回该结果时,我想从与我搜索的用户关联的“receiver”列中提取接收方的objectID。我一直得到0个结果,即使我知道数据在那里。这是我的密码: private List<String> potentialRelationQuery() { mPotentialRelations = new ArrayList<>();

我在通过查询从解析表/对象获取数据时遇到一些问题。我试图简单地进行一个查询,在“sender”列中查找当前解析用户的objectID。当返回该结果时,我想从与我搜索的用户关联的“receiver”列中提取接收方的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;
}
私有列表潜在关系查询(){
mPotentialRelations=newarraylist();
字符串currentUserId=mCurrentUser.getObjectId();
ParseQuery query3=ParseQuery.getQuery(“潜在关系”);
查询3.whereEqualTo(“发件人”,当前用户ID);
query3.findInBackground(新的FindCallback(){
@凌驾
public void done(列出parseObjects,parsee异常){
如果(e==null){
如果(parseObjects.size()>0){
for(int i=0;i
既然findInBackground是对Parse的异步调用,那么mPotentialRelations不可能返回空的,因为findInBackground查询在potentialRelationQuery方法返回之前还没有完成吗?我知道我对这件事有意见。由于您无法从内部类(即FindCallback的done方法)返回数据,因此编写这种查询方法对我来说从来没有真正起到一致的作用。

我对代码做了一些更改,并在上面进行了更改。我不知道如何在下面的注释框中发布新代码…我从代码的另一部分调用此方法,并希望返回名为mPotentialRelations的数组列表。它仍然不返回任何内容,因为日志消息返回“无匹配对象…”,尽管数据仍然存在。。。救命啊!我能够创建一个错误消息的日志,并得到以下消息:error=指针字段“sender”需要一个指针值。看起来可能是类型不匹配?问题已解决。。。我没有传递mCurrentUser.getObjectId(),这是一个字符串,而是将查询改为query3.whereEqualTo(“sender”,mCurrentUser);这是一个用户对象。查询现在运行得很好