Запрос базы данных Parse для получения данных из одного столбца в классе данных Parse
Привет
Я играю с Parse, мне удалось создать облачную базу данных с двумя классами / таблицами, Users и Posts, я могу регистрироваться и входить в систему пользователей и позволять им делать посты в базе данных.
Я сейчас пытаюсь выяснить, как сделать запрос к базе данных и получить данные, которые были опубликованы, мой класс / таблица сообщений состоит из четырех столбцов: | ObjectID | текст | пользователь | создал на |
Я хотел бы иметь возможность выбирать и отображать в своем приложении все данные, хранящиеся в столбце "текст". У меня очень мало опыта работы с базами данных, так что извините, если это глупый вопрос.
Код до сих пор:
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> text, ParseException e) {
if (e == null) {
Toast.makeText(MainActivity.this, text.toString(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
Я знаю, что мне нужно ограничить запрос только данными из столбца 'text', поэтому я явно пропускаю строку кода между строками 1 и 2.
Любая помощь будет оценена. Благодарю.
1 ответ
Из API разбора
Вы можете ограничить возвращаемые поля, вызвав selectKeys с набором ключей. Чтобы получить документы, содержащие только поля Score и playerName (а также специальные встроенные поля, такие как objectId, creationAt и updatedAt):
ParseQuery<ParseObject> query = ParseQuery.getQuery("GameScore"); query.selectKeys(Arrays.asList("playerName", "score")); List<ParseObject> results = query.find();
Итак, чтобы просто получить текстовое поле, все, что вам нужно сделать, это:
ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
query.selectKeys(Arrays.asList("text"));
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> posts, ParseException e) {
if (e == null) {
List<String> postTexts = new ArrayList<String>();
for(ParseObject post : posts){
postTexts.add(post.getString("text"));
}
Toast.makeText(MainActivity.this, postTexts.toString(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "query error: " + e, Toast.LENGTH_LONG).show();
}
}
});
Справочник по API
Ссылка на документ (непосредственно перед заголовком "Запросы к значениям массива")