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