Firebase Android SearchView的值

我一直在搜索有关如何通过vaule搜索firebase的搜索,我无法完全回答所以我现在要问…

我使用过这种方法,但无法得到正确的结果:

我需要搜索用户名”.

这是我的数据库

enter image description here

mSearchView.setonQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String query) {
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String newText) {

                    mQuery = mDatabase.orderByChild("Username");


                    return false;
                }
            });

我也使用过:

mSearchView.setonQueryTextListener(new SearchView.OnQueryTextListener() {
                @Override
                public boolean onQueryTextSubmit(String query) {
                    return false;
                }

                @Override
                public boolean onQueryTextChange(String newText) {

                    mQuery = mDatabase.orderByChild("Username").equalTo(newText)


                    return false;
                }
            });

但我不能这样,任何人都可以给我完全正确的答案

感谢AtaerCaner帮助我,也感谢您尽可能多地帮助我,但我仍然没有从搜索视图中得到任何结果,所以我将提供我班上的方法

mDatabase.addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(final DataSnapshot dataSnapshot,String s) {
                    mSearchView.setonQueryTextListener(new SearchView.OnQueryTextListener() {
                        @Override
                        public boolean onQueryTextSubmit(String query) {

                            String A = (String) dataSnapshot.child(Post_Key).child("Username").getValue();
                            mQuery = mDatabase.orderByChild(A).equalTo(query);


                            return false;
                        }

                        @Override
                        public boolean onQueryTextChange(String newText) {
                            String A = (String) dataSnapshot.child(Post_Key).child("Username").getValue();
                            mQuery = mDatabase.orderByChild(A).equalTo(newText);
                            return false;
                        }
                    });
                }

所以请检查方法是否正确..

解决方法

让我们想想我正在寻找迈克.首先,通过用户名mDatabase.child(“Users”)将所有用户带到.swountByChild(“Username”).但我想要Mike的数据,所以我添加.equalTo(“Mike”).这会返回一个查询,然后设置一个.addListenerForSingleValueEvent来获取Mike的数据.我想要的信息将作为可迭代对象,在此回调中有一个项目.然后将其转换为用户模式.

mDatabase.child("Users").orderByChild("Username").equalTo("Mike").addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                  User user = dataSnapshot.getChildren().iterator().next().getValue(User.class);
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

就我在你的代码中看到的那样,你可以使用mQuery = mDatabase.orderByChild(A).equalTo(newText)获得查询,但是你没有对它做任何事情.

也许这个人可以帮助你
https://www.youtube.com/watch?v=3WTQZV5-roY

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...