java - 在 Firebase 中搜索时如何执行 OR 查询?
问题描述
这是一个人的各种属性。
如果任何字段:或具有相同的字母specializationField
,我想实现搜索结果。hospitalName
fullName
例如,如果我搜索“sh”,此人应该出现在该字段中,因为医院名称相似。
这是我用来仅搜索 fullName 的代码:
FirebaseRecyclerOptions<DoctorHelperClass> options =
new FirebaseRecyclerOptions.Builder<DoctorHelperClass>()
.setQuery(FirebaseDatabase.getInstance().getReference().child("Doctor").orderByChild("fullName").startAt(s.toUpperCase()).endAt(s.toLowerCase()+"\uf8ff"), DoctorHelperClass.class)
.build();
adapter = new DoctorsAdapters(options, FindDoctorActivity.this);
adapter.startListening();
binding.rvListDoctors.setAdapter(adapter);
请帮帮我
解决方案
Firebase 实时数据库不支持 OR 条件。您要么必须执行多个查询并在客户端合并结果,要么创建一个专门的字段来执行此搜索。
但鉴于您的问题,您可能正在寻找的文本搜索功能远远超出 Firebase 实时数据库的处理能力。我建议不要尝试将这些要求强加到 Firebase 上,而是使用额外的(甚至其他)数据库来满足您的文本搜索要求。
另见:
推荐阅读
- python - python3 multithreading write to files
- javascript - 添加事件侦听器未连接到按钮
- python - 使用 python 在 Unleashed put 请求上获取 500 内部服务器错误
- node.js - 在MongoDB中使用UnifiedTopology为false的替代方法是什么,以便客户端重新连接回MongDB服务器?
- python - tkinter 中的条目小部件调整大小问题
- python - 如何获取嵌入式谷歌地图上每个点的纬度和经度?
- python - 如何让 Pyinstaller 与 pyplot 一起使用?
- python - For循环Selenium - 不完整的任务
- react-native - react-native redux 找不到反应
- python - 智能__init__.py