Получить ArrayList из Firestore и выбрать 3 случайных строки из этого списка - PullRequest
1 голос
/ 09 января 2020

Мне удалось получить строки, хранящиеся в массиве базы данных (Log.d("TAG", entry.getValue().toString()); показывает значения строк массива).

Строки представляют собой автоматически генерируемые идентификаторы документов, хранящиеся в массиве в Firestore, поэтому цель состоит в том, чтобы получить 3 идентификатора, чтобы я мог сделать 3 запроса, чтобы получить фактические документы.

Я застрял о том, как прикрепить строки, полученные из Firestore, к ArrayList, а затем получить 3 отдельные случайные строки из него.

Я относительно новичок в ArrayLists, поэтому любая помощь очень ценится!

Вот мой код:

questionRef.document(tvCat1).get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {

            DocumentSnapshot document = task.getResult();

            Map<String, Object> map = document.getData();
            for (Map.Entry<String, Object> entry : map.entrySet()) {
                if (entry.getKey().equals("questions")) {
                    Log.d("TAG", entry.getValue().toString());

// Create function that gets 3 different values from the ArrayList and store them in 3 different Strings

                }
            }
        }
    }
});

Вот как я структурировал базу данных. В настоящее время я получаю ArrayList, поэтому у меня не так много чтений. Справа вы можете видеть документы, которые я хочу запросить, когда я выбрал 3 произвольных идентификатора документа из ArrayList:

enter image description here

1 Ответ

0 голосов
/ 05 февраля 2020

Я нашел способ добиться желаемого результата. Я отправил ответ на этот существующий вопрос, чтобы не публиковать идентичные ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...