【发布时间】:2019-02-24 08:55:58
【问题描述】:
我在 google Cloud Firestore 中遇到查询条件问题。
任何人都可以帮助我。
下面是我获取第一个以 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_”开头的文章的最后一个 id
上图的例子:
- if(articleId start with "HA_") => 返回 id 为 831 的对象
- if(articleId start with "XE_") => 返回 id 为 833 的对象
现在我得到一个错误
java.util.concurrent.ExecutionException: com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: 不等式过滤器属性和第一排序顺序必须相同:articleId 和 id
【问题讨论】:
标签: java firebase google-cloud-firestore