У меня возникли проблемы с получением некоторых данных из моей таблицы/объекта Parse с запросом. Я пытаюсь просто сделать запрос, который ищет текущий идентификатор объекта Parse User в столбце «отправитель». Когда этот результат будет возвращен, я хочу извлечь идентификатор объекта получателя из столбца «получателя», связанного с пользователем, которого я искал. Я продолжаю получать 0 результатов, хотя я знаю, что данные есть. Вот мой код:Получение данных из запроса Parse
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. Он по-прежнему ничего не возвращает, поскольку сообщение журнала возвращает «Нет совпадающих объектов ...», хотя данные все еще там ... Справка! –
Мне удалось создать журнал сообщения об ошибке и получил следующее сообщение: error = pointer field "sender" требуется значение указателя. Похоже, может быть, несоответствие типа? –
Проблема решена ... Вместо передачи mCurrentUser.getObjectId(), которая является строкой, я просто изменил запрос на query3.whereEqualTo («sender», mCurrentUser); который является объектом User. Запрос работает отлично сейчас –