Firebase搜索是如此缓慢

时间:2018-08-01 15:55:17

标签: android firebase firebase-realtime-database

我有一个Android应用程序,其中包含一个带有firebase选项的搜索并使用我正在使用的api进行搜索,api需要花费几秒钟的时间在屏幕上打印数据,而firebase则需要几分钟才能打印数据,而且速度很慢查询数据库

这是我的代码:

 public void firebaseSearch(String name) {
    mFirebaseSearchList.clear();
    mSearchLoading.setVisibility(View.VISIBLE);
    mFirebaseSearchAdapter.setData(new ArrayList<_Release>());
    mDatabase.child("releases")
            .child(mRegion)
            .child("data").orderByChild("game/search_name").startAt(name.toLowerCase())
            .endAt(name.toLowerCase()+"\uf8ff")
            .limitToFirst(10)
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    mSearchLoading.setVisibility(View.GONE);
                    if (dataSnapshot.hasChildren()) {
                        for (DataSnapshot data : dataSnapshot.getChildren()) {
                            _Release release = data.getValue(_Release.class);
                            if (release != null) {

                                mFirebaseSearchList.add(release);
                                mFirebaseSearchAdapter.notifyDataSetChanged();
                            }
                        }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    mSearchLoading.setVisibility(View.GONE);
                }
            });

}

侦听器设置为onTextChange

 mGameSearchView.setOnQueryTextListener(new MaterialSearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            mGameSearchView.showSearch();
            mGameSearchView.requestFocus();
            if (currentSearchId == 2) {
                apiSearch(query);
            }
            return true;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            if (currentSearchId == 1) {
                firebaseSearch(newText);
            }
            return true;
        }
    });

0 个答案:

没有答案