首页 > 解决方案 > 在 Firebase 中搜索时如何执行 OR 查询?

问题描述

这是一个人的各种属性。

数据库

如果任何字段:或具有相同的字母specializationField,我想实现搜索结果。hospitalNamefullName

例如,如果我搜索“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);

请帮帮我

标签: javaandroidfirebasefirebase-realtime-databasenosql

解决方案


Firebase 实时数据库不支持 OR 条件。您要么必须执行多个查询并在客户端合并结果,要么创建一个专门的字段来执行此搜索。

但鉴于您的问题,您可能正在寻找的文本搜索功能远远超出 Firebase 实时数据库的处理能力。我建议不要尝试将这些要求强加到 Firebase 上,而是使用额外的(甚至其他)数据库来满足您的文本搜索要求。

另见:


推荐阅读