Firestore, где EqualTo, orderBy и limit (1) не работают - PullRequest
0 голосов
/ 12 мая 2018

Я хочу запросить в моей коллекции тренировок последнюю тренировку из рутины.Это значит, что я запрашиваю whereEqualTo мой рутина рутины, упорядочив его по Started TimeStamp в порядке убывания, а затем ограничиваясь 1, а затем возьму этот 1-й ключ / идентификатор тренировки.

Однако это не работает.whereEqualTo и orderBy работают отдельно, но не вместе.Что я делаю не так?

fm.getColRefWorkout().whereEqualTo("routineKey", routineKey).orderBy("startTimeStamp", Query.Direction.DESCENDING).limit(1).get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { 
                @Override
                public void onSuccess(QuerySnapshot documentSnapshots) {
                    workoutKey = documentSnapshots.getDocuments().get(0).getId();
                    //To stuff with this workoutKey
                }
            });

1 Ответ

0 голосов
/ 14 мая 2018

Этот запрос не будет работать, если вы не создадите для него index .Это можно сделать, создав его вручную в консоли Firebase или, если вы используете Android Studio, в журнале регистрации вы увидите сообщение, которое звучит так:

FAILED_PRECONDITION: The query requires an index. You can create it here: ...

Вы можете просто щелкнуть эту ссылку или скопировать и вставить URL-адрес в веб-браузер, и ваш индекс будет создан автоматически.

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