Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firebase数据库中的多个等于_Java_Android_Firebase Realtime Database_Android Recyclerview - Fatal编程技术网

Java Firebase数据库中的多个等于

Java Firebase数据库中的多个等于,java,android,firebase-realtime-database,android-recyclerview,Java,Android,Firebase Realtime Database,Android Recyclerview,我正在开发一个血库应用程序,为了让它发挥作用,当用户请求特定类型的血液时,应该显示血型兼容的人。 例如:如果请求者的血型为AB-,则血型为O-、a-、B-、AB-的人应显示在Firebase Recycler视图中。但是,我了解到在一个查询中不能有多个equalTo() Query query = findDonorsRef.orderByChild("bloodGroup"); case "AB-": option = new F

我正在开发一个血库应用程序,为了让它发挥作用,当用户请求特定类型的血液时,应该显示血型兼容的人。 例如:如果请求者的血型为AB-,则血型为O-、a-、B-、AB-的人应显示在Firebase Recycler视图中。但是,我了解到在一个查询中不能有多个equalTo()

Query query = findDonorsRef.orderByChild("bloodGroup");
case "AB-":
            option = new FirebaseRecyclerOptions.Builder<FindDonors>()
                    .setQuery(query.equalTo("O-").equalTo("A-").equalTo("B-").equalTo("AB-"), FindDonors.class)
                    .build();
            break;
Query Query=findDonorsRef.orderByChild(“bloodGroup”);
案例“AB-”:
选项=新建FirebaseRecyclerOptions.Builder()
.setQuery(query.equalTo(“O-”).equalTo(“A-”).equalTo(“B-”).equalTo(“AB-”),FindDonors.class)
.build();
打破

这导致应用程序崩溃,有人能提出任何建议吗。

我要做的是在数据库中为每个用户设置一个
campatibleWith
属性。所以,与其比较每个兼容的血型以找到匹配的血型,不如比较用户是否与所需的血型兼容

通过向它传递您需要的血型,使您的查询更加动态

String neededBloodGroup = "AB-";
Query query = findDonorsRef.orderByChild("compatibleWith/".concat(neededBloodGroup)).equalTo(true);
然后,不必手动检查每个兼容性,只需查询数据库,因为上面已经完成了所有过滤

option = new FirebaseRecyclerOptions.Builder<FindDonors>()
    .setQuery(query, FindDonors.class)
    .build();

回答得好,丹尼尔!非常感谢你!我不得不修改注册代码,不管怎样,这非常有效!我希望有一天我能像你一样有批判性思维。
{
    "-KdWh_9KVF16efcSdrji": {
        // Example data
        "name": "Daniel Guzmán",
        "age": 24,
        "gender": "male",
        // Here's the trick
        "bloodGroup": "A-",
        "compatibleWith":{
            "AB-": true
            // All the compatible groups here
        }
    }
}