如何在Cloud Firestore中使用startAt()和endAt()?

时间:2018-03-11 09:36:05

标签: java android firebase google-cloud-firestore

我从这篇question中读到了Dan McGrath的回答,他说在Firestore中有以下代码行的等价物:

myRef.startAt(searchText).endAt(searchText + "\uf8ff");

此行在Firebase实时数据库中运行良好,但我试图在Cloud Firestore中找到相当于数天的等效内容。任何人都可以帮我吗?

提前致谢!

2 个答案:

答案 0 :(得分:4)

你有几个选择。

查询过滤器

您可以使用.where关键字添加查询过滤器。看看Order and Limit Data with Cloud Firestore

查询游标

如果您想使用游标分页数据,请查看Paginate Data with Query Cursors

您的查询

您需要指定要搜索的字段。例如,如果您要查找包含name searchText的所有文档,则需要添加orderBy参数。

myRef.orderBy("name").startAt(searchText).endAt(searchText + "\uf8ff");

这假定您的myRef是对集合的引用。

答案 1 :(得分:0)

你找到了解决办法,可能你糊涂了,把这个"改成单引号(') 它会很好地工作,感谢另一篇文章,它也对我有帮助。 我把我的代码留在这里:

FirestoreRecyclerOptions <Ingreso> newoptions = new FirestoreRecyclerOptions.Builder<Ingreso>()
                .setQuery(fStore.collection("DatosEmpresa").orderBy("DepartamentoEmpresaLoweCase").startAt(newText.toLowerCase()).limit(25).endAt(newText.toLowerCase()+'\uf8ff'),Ingreso.class)
                .build();