J'essaie d'interroger Firebase et de remplir un adaptateur de recycleur avec des données conditionnelles à partir de DataSnapshot de la requête. J'ai essayé de placer la fonction de remplissage à l'intérieur de l'instruction if qui enregistre correctement les données que je veux, mais la vue recycleur renvoie simplement tout à partir du nœud que je recherchais (la requête principale avec laquelle j'ai commencé). Des suggestions sur la façon de simplement remplir les éléments qui s'appliquent à l'instruction "if"? Je vous remercie!Android: Comment utiliser les valeurs DataSnapshot conditionnelles dans Firebase RecyclerView?
rootRef = FirebaseDatabase.getInstance().getReference();
//below is the node i query
mAlbumQuery = rootRef.child(Constants.FIREBASE_CHILD_ALBUMS).orderByChild("genres");
mAlbumQuery.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot reco : dataSnapshot.getChildren()) {
if (reco.getValue().toString().contains(mRecommendation.getGenre())) {
//below returns the items i want
Log.d("is this correct", reco.getValue().toString());
//below returns everything in the original query
//how to populate only items that match the above?
mAdapter = new FirebaseRecyclerAdapter<Album, AlbumsViewHolder>(
Album.class,
R.layout.album_cards,
AlbumsViewHolder.class,
mAlbumQuery) {
@Override
public void populateViewHolder(AlbumsViewHolder holder, Album album, int position) {
holder.bindView(album.getImage(), album.getTitle());
if (!album.getGenres().contains(mRecommendation.getGenre())) {
//added as a hypothetical... should i have something in here?
}
}
};
mAlbumsRecycler.setAdapter(mAdapter);
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return view;
}
Comment l'utiliser dans la vue Recycleur? – DarkKnightSDS