Java Firestore:查询orderBy和StartS的所有集合以及最后1个结果

Java Firestore:查询orderBy和StartS的所有集合以及最后1个结果,java,firebase,google-cloud-firestore,Java,Firebase,Google Cloud Firestore,我正在尝试查询Firestore: 集合“用户” orderBy列“User\u Slug” 匹配searchQuery,例如“卡纳克”和 获得最后1个结果 所以,如果我有 “用户”中共有3个文档 卡纳克-01 卡纳克-02 卡纳克-03 结果必须是kanak-03 .orderBy("User_Slug", Query.Direction.ASCENDING) .startAt(queryText) .get() 但是,它将返回用户中的所有文档,这些用户的slug匹配以kanak和res

我正在尝试查询Firestore:

集合“用户”
orderBy列“User\u Slug”
匹配searchQuery,例如“卡纳克”和
获得最后1个结果

所以,如果我有 “用户”中共有3个文档

  • 卡纳克-01
  • 卡纳克-02
  • 卡纳克-03
结果必须是kanak-03

.orderBy("User_Slug", Query.Direction.ASCENDING)
.startAt(queryText)
.get()
但是,它将返回用户中的所有文档,这些用户的slug匹配以kanak和rest开头-

  • 卡纳克-01
  • 卡纳克-02
  • 卡纳克-03
  • 彼得
  • 罗马人
  • 罗马-02
  • 托马斯
  • 胜利者

要解决此问题,请使用以下查询:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("User-Info");
usersRef.orderBy("User_Slug", Query.Direction.ASCENDING)
    .startAt(queryText)
    .endAt(queryText + "\uf8ff")
    .limit(1)
    .get();

在你的问题中使用
.limit(1)
为什么被否决?@ConstantinBeer我试过limit-它给我结果——kanak-01。但是我需要kanak-03。不,DESC不起作用,因为它首先对带有空结果的文档进行排序。很高兴知道:)在
中。limit()
它不应该是1吗?@KanakSony请将您的数据库结构添加为屏幕截图。这个查询应该100%起作用,我会测试它。在你的情况下也有效吗?是的,我看过你以前的类似帖子,但在我的情况下,它不起作用。我不是火炉店的专家。请检查数据库结构--@AlexMamo谢谢。我不知道我能参加。