Запрос базы данных 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

Ссылка на документ (непосредственно перед заголовком "Запросы к значениям массива")

Другие вопросы по тегам