如何总结/聚合值在火力地堡
问题描述:
我刚才添加使用火力地堡几个值: 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