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