2

Ich kann Daten von Firebase zu App über RecyclerView abrufen. Aber wenn ich versuche, die Suchansicht hinzuzufügen, funktioniert das nicht.Android-Suchansicht mit Firebase RecyclerView zeigt keine Daten an

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    getMenuInflater().inflate(R.menu.menu_search, menu); 
    final SearchView searchView =(SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menusearch)); 
    SearchManager searchManager =(SearchManager) getSystemService(SEARCH_SERVICE);  searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()); 
    //searchView.setSubmitButtonEnabled(true); 

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

     @Override 
     public boolean onQueryTextChange(String newText) { 
      //SearchText.setText(newText); 
      Query Q = mDatabase.child("Recipees").orderByChild("cusine").startAt(newText).endAt(""); 
      FirebaseRecyclerAdapter<ImageRetrieve, BlogViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<ImageRetrieve, BlogViewHolder>(

        ImageRetrieve.class, 
        R.layout.recipe_row, 
        BlogViewHolder.class, 
        Q 

      ) { 
       @Override 
       protected void populateViewHolder(BlogViewHolder viewHolder, ImageRetrieve model, int position) { 

        viewHolder.setCusine(model.getCusine()); 
        viewHolder.setCatagory(model.getCatagory()); 
        viewHolder.setRecipe(model.getRecipe()); 
        viewHolder.setUrl(getApplicationContext(), model.getUrl()); 

       } 
      }; 

      mRecipeList.setAdapter(firebaseRecyclerAdapter); 



      return false; 
     } 


    }); 
    return true; 
    } 
+0

ist Firebase-Abfrage einige zurück zu Ihnen? –

+0

in Bezug auf Suche nichts, kann ich die gleichen Daten in Recycle-Ansicht abrufen –

+0

So dass meine Abfrage falsch ist: Versuchen Sie Folgendes: mDatabase.child ("Recipees"). OrderByChild ("cusine"). EqualTo (newText); –

Antwort

1

dieses Probieren Sie es helfen können:

Query Q = mDatabase.child("Recipees").orderByChild("cusine").startAt(newText).endAt(newText+"\uf8ff"); 
+0

es hilft nicht. Danke für den Beitrag. –

+0

das Schlimmste an Firebase ist Suche in den meisten Fällen sie tun es durch eine andere API mit elastischen Suche, ich denke, implementieren Sie Ihren eigenen Adapter und bekommen die Liste dann filtert es wird Ihre beste Wahl –

0

dass also bedeuten Abfrage falsch haben. Versuchen Sie Folgendes: ->

mDatabase.child("Recipees").orderByChild("cusine").equalTo(n‌​ewText); 
+0

Noch kein Glück !! –