2017-10-05 3 views
-2

Bonjour TousComment obtenir des données de Firebase dans l'adaptateur recyleview dans Android

Je veux obtenir les données de Firebase adaptateur Recycleview

Ceci est mon Firebase Structure:

enter image description here

Dans mon adaptateur recycleView, les données proviennent d'api.

Explication de la structure firebase

Ici user_product_bid est mon noeud principal, sous ce "42" est mon product_id (sous Node) et sous cette valeur "des offres" disponibles. Je veux obtenir des données de Firebase selon la position de l'emplacement product_id.I ont avec succès des données de recycleView mais le problème se produit dans l'extraction

S'il vous plaît Aidez-moi comment je peux remplir cette tâche ou me suggérer.

+0

retrofit utiliser pour appeler des données – sushildlh

+0

essayer ce tutoriel https://inducesmile.com/android/a-simple-android-todo-list-app-with-recyclerview-and- firebase-real-time-base de données / –

Répondre

0

Utilisez le code suivant pour récupérer les données et le remplir dans recyclerview

List<User_Product_Bid> userPdtBidObj = new ArrayList<User_Product_Bid>(); 
private DatabaseReference firebaseInstance = FirebaseDatabase.getInstance().getReference(); 
private DatabaseReference 
     userPdtsBidRef = firebaseInstance.child("user_product_bid"); 
userPdtsBidRef.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 

      long count = dataSnapshot.getChildrenCount(); 
      if(count != 0) { 
      for (DataSnapshot dataObj : dataSnapshot.getChildren()) { 

        User_Product_Bid obj = dataObj.getValue(User_Product_Bid.class); 
        userPdtBidObj.add(obj); 
      } 
      } 
     } 
     @Override 
     public void onCancelled(DatabaseError databaseError) { 
     }); 

Modèle de pour User_Product_Bid

@IgnoreExtraProperties 
public class User_Product_Bid { 

    @SerializedName("bids") 
    private boolean List<String> bids; 

    public User_Product_Bid() { 
    } 

    public List<String> getBids() { 
     return bids; 
    } 

    public void setBids(List<String> bids) { 
     this.bids = bids; 
    } 
} 
0

vous pouvez tout simplement faire .. il est un moyen facile. mais vous devez faire une classe Model pour ça. il est à u ...

databaseRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 
       if(dataSnapshot.exists()){ 
        for (DataSnapshot data : dataSnapshot.getChildren()) { 
      String product_id = data.getKey(); //your product id 
      Arrylist<String> bits = data.getValue(); //bits for this product 

        } 
       } 

      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     });