2017-05-27 6 views
0

Ich versuche, die Summe aller int in einem Kind meiner Firebase-Datenbank zu erhalten.So erhalten Sie SUM der untergeordneten Einträge in Firebase-Datenbank

Meine Datenbank eingerichtet ist, wie

beans-card 
    - users 
     - (UID from Firebase Auth) 
      - Receipt 
        - keyID 
         - amount: 11 
         - points: 22 
        - keyID 
         - amount: 11 
         - points: 22 

Ich mag die Summe der Punkte und zeigt in Textview in verschiedenem Fragmente

hier ist Klasse meiner Quittung

public class Receipt { 

    public int amount; 
    public int points; 

    public Receipt(){} 

    public Receipt(int amount, int points) { 
     this.amount = amount; 
     this.points = points; 
    } 

    public int getAmount(){ 
     return amount; 
    } 

    public void setAmount(int amount){ 
     this.amount = amount; 
    } 

    public int getPoints(){ 
     return points; 
    } 

    public void setPoints(int points){ 
     this.points = points; 
    } 

} 

und hier bekommen ist, wie ich die Daten in meine Datenbank eintrage

Receipt receipt = new Receipt(second, second*2); 

mDatabase.child("users").child(mUserId) 
.child("Receipt").push().setValue(receipt); 
+0

Wie würden Sie eine 'Liste ' bekommen? Mit diesen Informationen wären Sie auf halbem Weg –

Antwort

2
DatabaseReference db_receipt =FirebaseDatabase.getInstance().getReference().child("users").child(uid).child("Receipt") 
long sum = 0; 
db_receipt.addListenerForSingleValueEvent(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot ds:dataSnapshot.getChildren() 
        ) { 
         sum = sum + points; 
         } 

       } 
      } 


     @Override 
     public void onCancelled(DatabaseError databaseError) { 

     } 
    }); 
Verwandte Themen