如何总结/聚合值在火力地堡

问题描述:

我刚才添加使用火力地堡几个值: Screen from Firebase如何总结/聚合值在火力地堡

我想总结一下这些数据并显示15的日志中的结果。

这里是我的代码:

@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) { 

      } 
     }); 

要做到这一点,请使用以下代码。这是简单的方法。

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); 

你的输出将是:15

使用ValueEventListner和,不使用childEventListner, 按照下面的线......这里的 “用户界面和UI.class” 是指... Java类名..你把getter和setters ... 这里我存储int值在firebase中...所以需要将int值转换为字符串并将文本设置为文本viewholder ...如果你不存储在int ..比你可以用字符串

beersRef.addValueEventListener(new ValueEventListener() {` 
        @Override 
        public void onDataChange(DataSnapshot dataSnapshot) {`` 

         int total = 0; 

         for (DataSnapshot ds : dataSnapshot.getChildren()) { 

          UI result = ds.getValue(UI.class); 
          total = total + result.getMrp_final(); 

         } 

         String tl = total + ""; 
         tv_total.setText(tl); 

        } 

        @Override 
        public void onCancelled(DatabaseError databaseError) { 

        } 
       }); 

make肯定int总值为零... thankyou