此代码返回一个错误。有谁能告诉我这有什么问题吗?
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("Doctor");
dbRef.keepSynced(true);
DatabaseReference dbRef2 = FirebaseDatabase.getInstance().getReference("Patient").child(FirebaseAuth.getInstance().getCurrentUser().getUid());
Query query = dbRef.orderByChild("filter").equalTo(passed,dbRef2.child("location").toString());
FirebaseRecyclerOptions<DoctorHelperClass> options = new FirebaseRecyclerOptions.Builder<DoctorHelperClass>()
.setQuery(query, DoctorHelperClass.class).build();
1条答案
按热度按时间j8ag8udp1#
问题可能在这里:
如果有多个节点具有相同的
filter
值,第二个参数equalTo
用于进一步限制返回的结果。它并没有指明要筛选的属性的名称,您可能会这样想。要筛选的完整路径需要位于对的调用中
orderByChild
. 因此,如果您想在filter/location
每个子节点的属性,即:更新:因为您表示要对两个属性进行排序/筛选。
firebase数据库查询只能对单个属性进行排序/筛选。在许多情况下,可以将要筛选的值组合到单个(合成)特性中。例如,在您的情况下,您可以订购/筛选
"location_specialization": "locationValue_specializationValue"
.有关此方法和其他方法的示例,请参见我的答案:基于firebase中多个where子句的查询