Как запрос и порядок - PullRequest
       4

Как запрос и порядок

0 голосов
/ 24 февраля 2019

У меня проблема с условием запроса в Google Cloud Firestore.

Любой может мне помочь.

This is my Collection and documents

Ниже мойкод для получения первого документа Начало с HA_ и порядок по ID DESC

public Article getLastArticleProvider() {
    ApiFuture<QuerySnapshot> query = firebaseDB.getTblArticles()
            .whereGreaterThanOrEqualTo("articleId", "HA_")
            .orderBy("id", Query.Direction.DESCENDING)
            .limit(1)
            .get();

    QuerySnapshot snapshotApiFuture;
    Article article = null;

    try {
        snapshotApiFuture = query.get();
        List<QueryDocumentSnapshot> documents = snapshotApiFuture.getDocuments();
        for (QueryDocumentSnapshot document : documents) {
            article = document.toObject(Article.class);
        }
    } catch (InterruptedException | ExecutionException e) {
        return null;
    }
    return article;
}

Я хочу получить последний идентификатор статьи с articleId, начинающийся с "HA_" или "XE _"

Пример вышеimage:

  • if (articleId начинается с "HA_") => вернуть объект с идентификатором 831
  • if (articleId начинается с "XE_") => вернуть объект с идентификатором 833

Теперь у меня появляется ошибка

java.util.concurrent.ExecutionException: com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT:Свойство фильтра неравенства и первый порядок сортировки должны совпадать: articleId и id

1 Ответ

0 голосов
/ 24 февраля 2019

Как говорит следующая ошибка:

Свойство фильтра неравенства и первый порядок сортировки должны совпадать: articleId и id

Таким образом, вы не можете фильтровать свои элементы и сортироватьих в то же время, используя разные свойства, в вашем случае articleId и id.

Есть также пример того, как не сделать это в официальном документация :

  • Фильтр диапазона и первый порядок по разным полям

    citiesRef.whereGreaterThan("population", 100000).orderBy("country"); //Invalid
    

Чтобы решить эту проблему, необходимо отфильтровать и упорядочитьв том же свойстве документа.

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