2

Est-il possible de spécifier quelles données sont lues par le FirebaseListAdapter?FirebaseListAdapter - Requête

En ce moment, je ne pouvais lire que la base de données complète. La base de données contient beaucoup d'objets différents. L'objet a une valeur qui représente l'utilisateur qui a créé l'objet.

Maintenant, je veux seulement lire les objets de cet utilisateur spécial. Quand je l'essaie comme ça, il y a un champ de liste vide.

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL"); 
    //HOW CAN I DO THE QUERY FOR THAT DATABASE REFERENCE? 
    FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
       this, 
       Machine.class, 
       R.layout.list_item, 
       databaseReference) { 
      @Override 
      protected void populateView(View v, final Machine model, int position) { 
       //CAN I DO THIS BY QUERY? 
       if(model.getS_UserID.equals(user.getID)){ 
        //SOME STUFF WHICH I DO 
       } 
     }; 
} 
     list.setAdapter(firebaseListAdapter); 

La question est, puis-je faire l'instruction if en faisant une requête pour la FirebaseListAdapter?

En ce moment, je fais quelque chose comme ceci:

si (model.getS_UserID.equals (user.getID()) -> Faire quelquechose

Mais il crée aussi des vides . Les champs qui sont vraiment laids Ma base de données ressemble à ceci:

OBJET

  • -userid = STRING
  • -NAME = ...
  • -.....

Répondre

2

Vous pouvez passer dans un Query au FirebaseListAdapter au lieu de la référence de base de données que vous utilisez en ce moment. Pour filtrer les articles avec l'ID utilisateur:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL"); 
Query query = databaseReference.orderByChild("s_UserId").equalTo(user.getID); 

FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
      this, 
      Machine.class, 
      R.layout.list_item, 
      query) { 

En savoir plus à ce sujet dans le Firebase documentation on ordering and filtering data.

+0

Bonjour Frank, pourriez-vous m'en donner un exemple? Vous êtes un programmeur fantastique que je suis aussi chez GitHub. Vous avez un projet qui inclut un propre adaptateur. Pourriez-vous donner aussi un exemple pour cela? –