【发布时间】:2019-03-06 13:52:24
【问题描述】:
我正在尝试从 Firebase 实时数据库中获取作者分数。我成功获得了分值。然后我在这个值上加上 100 并插入新值,但是当我插入分数值时,分数值会不断增加 100,例如,如果分数为 500 而不是更改为 600,它将更改为 600,然后是 700,然后是 800 等。如果我在 addExtraScore 方法中显示 Toast,它将按预期显示一次。
活动
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 实用程序 私有静态数据库参考数据库;
public static void updateUsersScore(String id, int score)
{
db = FirebaseDatabase.getInstance().getReference();
db.child("Users").child(id).child("score").setValue(score);
}
【问题讨论】:
标签: java android firebase firebase-realtime-database