如何在 Firebase 数据库中使用多个 orederbychild?

阿迪亚·维亚斯-拉罕

大家好我firebase在我的应用程序中使用数据库。我能够将数据添加到数据库。现在我想在我的应用程序中实现搜索,我有两个搜索用户的选择,

1)血型
2)用户区

我能够根据血型选择获取数据,但我不知道如何获取血型和区域的数据。(多选过滤器)

现在,如果用户从微调器中选择“A+”作为血型并选择“ABC”区域,那么结果将是“A+”血型和“ABC”区域的用户。

search_button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                System.out.println("Default Selected"+sel_blood_group);



                mFirebaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        //Your Logic here
                        for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {
                            UserRegisterModel mModel = eventSnapshot.getValue(UserRegisterModel.class);
                           // Log.e("DATA" ,""+ mModel.getName());
                        }


                        Query chatRoomsQuery = mFirebaseDatabase.orderByChild("blood_group").equalTo(sel_blood_group);

                        chatRoomsQuery.addListenerForSingleValueEvent(new ValueEventListener() {
                            @Override
                            public void onDataChange(DataSnapshot dataSnapshot) {
                                if (dataSnapshot.exists()) {
                                    // dataSnapshot is the "issue" node with all children with id 0
                                    for (DataSnapshot issue : dataSnapshot.getChildren()) {
                                        // do something with the individual "issues"
                                        UserRegisterModel mModel = issue.getValue(UserRegisterModel.class);
                                        Log.e("QUERY DATA" ,""+ mModel.getName());
                                    }
                                }
                            }

                            @Override
                            public void onCancelled(DatabaseError databaseError) {

                            }
                        });
                        Log.e("DATA" ,""+ chatRoomsQuery.toString());
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {

                    }
                });
            }
        });
普拉文·库马尔

Firebase 实时数据库不支持多个 where 子句。因此,尝试使用一个过滤器进行查询,然后以编程方式过滤下一个。

search_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            System.out.println("Default Selected"+sel_blood_group);
            System.out.println("Default Selected"+sel_area);


            mFirebaseDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    //Your Logic here
                    for (DataSnapshot eventSnapshot : dataSnapshot.getChildren()) {
                        UserRegisterModel mModel = eventSnapshot.getValue(UserRegisterModel.class);
                       // Log.e("DATA" ,""+ mModel.getName());
                    }


                    Query chatRoomsQuery = mFirebaseDatabase.orderByChild("blood_group").equalTo(sel_blood_group);

                    chatRoomsQuery.addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            if (dataSnapshot.exists()) {
                                // dataSnapshot is the "issue" node with all children with id 0
                                for (DataSnapshot issue : dataSnapshot.getChildren()) {
                                    // do something with the individual "issues"
                                    UserRegisterModel mModel = issue.getValue(UserRegisterModel.class);
                                   if(mModel.getArea().equals(sel_area))
                                    Log.e("QUERY DATA" ,""+ mModel.getName());
                                }
                            }
                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {

                        }
                    });
                    Log.e("DATA" ,""+ chatRoomsQuery.toString());
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }
    });enter code here

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Google Actions中使用Firebase数据库?

如何在Kotlin中使用Firebase UI数据库

如何使用实时数据库处理在 firebase 中使用的多个选项卡

如何在 Xcode 中使用 Swift 访问 Firebase 中 Cloud Firestore 数据库中的数据?

如何在 Firebase 实时数据库中使用 onChildRemoved?

如何在 Firebase 数据库子引用中使用字符串?

如何在Firebase数据库中使用Kotlin协程

如何在Firebase Realtime数据库中使用结束日期时间

如何在Chrome扩展程序中使用Firebase数据库

如何在Firebase数据库中使用相同的键汇总值

如何在 android 中使用来自 firebase 数据库的哈希映射

如何在firebase数据库android java中使用where查询

如何在ebean中使用多个数据库

如何在Laravel中使用多个数据库

如何在流明中使用多个数据库

如何在opencart中使用多个数据库?

在Firebase数据库中使用多个验证规则

如何从Firebase数据库读取数据并使用ArrayAdapter在ListView中显示多个字段

如何使用 Firebase 数据库中的特定字段检索多个数据

如何在Android中使用FirebaseListAdapter在ListView中显示Firebase数据库中项目的确切数量?

如何在Firebase Firestore数据库中使用正确的时区保存未来的到期日期

如何在flutter中使用像SQL这样的Firebase实时数据库来连接表?

如何从多个条件的Firebase数据库中选择数据

如何在Android的Firebase数据库中从uid获取/检索多个数据?

如何在 firebase 数据库数据更改上使用 cloudfunctions 发送 Firebase 通知?

如何通过在 Firebase 实时数据库中使用 ServerValue.increment() 来施加限制?

如何读取在 Swift 中使用 .childByAutoId() 创建的 Firebase 数据库字典的值?

如何使用Android在数据库Firebase的多个子节点中进行更改

我如何使用 DialogFlow 从数据库 Firebase 读取多个子项?