Я пытаюсь получить оценку авторов из базы данных Firebase в реальном времени. Я успешно получил значение балла. Затем я добавляю 100 к этому значению и вставляю новое значение, однако, когда я вставляю значение оценки, оно увеличивается на 100, например, если значение было 500, а не 600, оно изменится на 600, затем 700, затем 800 и т. Д. Если я показываю тост в методе addExtraScore
, он будет отображаться один раз и так, как задумано.
Активность
private void getAuthorScore()
{
database = FirebaseDatabase.getInstance().getReference();
database.child("Users").child(authorID).addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
User author = dataSnapshot.getValue(User.class);
authorScore = author.getScore();
addExtraScore();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
private void addExtraScore()
{
int score = authorScore + 100;
FirebaseUtil.updateUsersScore(authorID, score);
}
Firebase Util
приватная статическая база данныхReference db;
public static void updateUsersScore(String id, int score)
{
db = FirebaseDatabase.getInstance().getReference();
db.child("Users").child(id).child("score").setValue(score);
}