2017-10-20 1 views
0

Ich habe nur wenige Werte mit Firebase hinzugefügt: Screen from FirebaseWie zusammenzufassen/Gesamtwerte auf Firebase

Ich möchte diese Werte und Anzeige 15 als Ergebnis im Protokoll zusammenzufassen.

Hier ist mein Code:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     DatabaseReference beersRef = FirebaseDatabase.getInstance().getReference("Rank"); 

     final ArrayList<Integer> score = new ArrayList<>(); 

     score.add(9); 
     score.add(2); 
     score.add(4); 

     beersRef.push().setValue(score); 


     beersRef.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 


      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Antwort

1

Um dies zu erreichen, benutzen Sie bitte den folgenden Code verwenden. Es ist der einfache Weg.

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference rankRef = rootRef.child("Rank"); 
ValueEventListener eventListener = new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     int sum = 0; 
     for(DataSnapshot ds : dataSnapshot.getChildren()) { 
      int value = ds.getValue(Integer.class); 
      sum =+ sum + value; 
     } 
     Log.d("TAG", sum); 
    } 

    @Override 
    public void onCancelled(DatabaseError databaseError) {} 
}; 
rankRef.addListenerForSingleValueEvent(eventListener); 

Ihr Ausgang wird sein: 15

-1

Verwendung ValueEventListner und verwenden childEventListner nicht, folgen die unterhalb der Linie ... Here "UI und UI.class" bedeutet ... Java-Klassenname ..where Sie Getters und Setter ... Hier ich Int-Wert in Firebase speichern ... so müssen Int-Wert in String konvertieren und einen Text zu Text Viewholder ... wenn Sie nicht in Int speichern .. als Sie String verwenden können

machen sicher int Gesamtwert ist Null ... danke