java - 切换 Firestore 查询
问题描述
我有 2 个从 Firestore 获取数据的查询。第一个在适配器项计数为 0 时执行
query = collectionReference.orderBy("Places", Query.Direction.DESCENDING);
如果它存在于我的firestore数据库中,则执行另一个。
query = collectionReference.whereEqualTo(Constants.SEARCH_QUERY, Constants.CURRENT_CITY);
而且我的 Firestore 适配器中还有 onDataChange 方法,该方法将根据执行的查询获取项目总数。
TOTAL_ITEM = getItemCount();
现在在我的选择上,它看起来像这样
public FirestoreRecyclerOptions<PlacesModel> options(){
if (Constants.TOTAL_ITEM == 0) {
query = collectionReference.orderBy("Places", Query.Direction.DESCENDING);
} else {
query = collectionReference.whereEqualTo(Constants.SEARCH_QUERY, Constants.CURRENT_CITY);
}
return new FirestoreRecyclerOptions.Builder<PlacesModel>()
.setQuery(query, PlacesModel.class)
.build();
}
这是我的适配器
adapter = new PlacesAdapter(placesViewModel.options());
adapter.updateOptions(placesViewModel.options());
adapter.startListening();
如果我的 firestore 数据库中存在该值,则适配器工作正常。但问题是当我尝试搜索firestore数据库中不存在的地方时,它应该执行我的第一个查询但它没有。这就是为什么我需要再次初始化适配器以根据我的第一个查询更新我的 recyclerview。我想要实现的是动态的。就像,当我搜索并且它什么都不返回时,它会根据我的第一个查询自动更新我的 recyclerview 。
解决方案
推荐阅读
- regex - 当 url 以斜杠结尾时,apache 重写规则无法正常工作
- google-apps-script - 有条件地更改 Google 日历活动的颜色
- python - 将元图转换为 .pb 时出现异常
- reactjs - Redux 和 Typescript 中间件
- regex - 使用 mac 终端删除文件
- mysql - 组查询不支持 mysql 8;
- sql - SQL查询“折叠”靠近在一起的行
- python - 如何为 PrimeFaces 编写 Python 硒测试?
- javascript - 通过 cors 将 base64 图像插入 MySQL 数据库的最佳方法是什么?(MySQL+Express+React+Node 栈)
- python - Python3:使用 Dateutil 从长字符串中创建多个变量