我想更改引用“betslip”下child“togglestatus”的值,如下所示。已经设置的值是“开”,所以我希望当我点击按钮时,“切换状态”的值变为“关”
BetSlipActivity.toggleCollapse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String timeStamp = betSlip.get(position).getTimeStamp();
String toggleStatus = betSlip.get(position).getToggleStatus();
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("BetSlip");
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot ds: snapshot.getChildren()) {
String timestamp = ""+ ds.child("timeStamp").getValue();
String toggleStatus = ""+ ds.child("toggleStatus").getValue();
if (timeStamp.equals(timestamp) && toggleStatus.equals("on")) {
//set value to off
}
if (timeStamp.equals(timestamp) && toggleStatus.equals("off")) {
//set value to on
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
});
1条答案
按热度按时间x8diyxa71#
如果你有
DataSnapshot
对于数据库中的路径,很容易获得DatabaseReference
您需要更新它:由于您是基于节点的现有值来更新节点,严格来说,您可能需要为其使用事务。