我正在使用Android studio和Firebase开发应用程序。如果值大于数据库中的分数,我想在数据库中存储分数。我该如何检查?
userData.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userData.child("score").setValue(count);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
答案 0 :(得分:1)
您使用dataSnapshot
从参考中获取值。
然后,使用该引用来更新数据,但添加条件。
userData.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final String scoreKey = "score";
Long oldScore = dataSnapshot.child(scoreKey).getValue(Long.class);
if (oldScore == null || count > oldScore) {
userData.child(scoreKey).setValue(count);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});