Android - 如果值大于DB中的值,则在DB中插入

时间:2017-05-03 17:01:17

标签: android firebase firebase-realtime-database

我正在使用Android studio和Firebase开发应用程序。如果值大于数据库中的分数,我想在数据库中存储分数。我该如何检查?

            userData.addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {

                    userData.child("score").setValue(count);


                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

1 个答案:

答案 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) {

    }
});