Android Studio(Java)在Firebase实时数据库中的增值

nzkunb0c  于 2023-06-24  发布在  Android
关注(0)|答案(1)|浏览(147)

单击2图像按钮时,更新Firebase实时数据库中的值时出现问题。这是一个调查应用程序,我正在创建。因此,不需要在应用程序本身上检索和显示数据。
按钮正在工作,它显示在firebase中的数据。不幸的是,无论我点击了多少次按钮,这两个按钮的值都只显示为1。它不会在数据库中更新自己。

private int clickCount1 = 0;
 private int clickCount2 = 0;
 private DatabaseReference mDatabase;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

//Firebase Database
mDatabase = FirebaseDatabase.getInstance().getReference();

likebutton = findViewById(R.id.imageButton11);
downbutton = findViewById(R.id.imageButton10);

//Like Button Action
        likebutton.setOnClickListener(v -> {
            incrementClickCount1();
            saveClickCountToDatabase1();
            animationView1.playAnimation();
            Intent intent = new Intent(MainActivity.this, Landscape.class);
            startActivity(intent);
            finish();
        });

 //Down Button Action
        downbutton.setOnClickListener(v -> {
            incrementClickCount2();
            saveClickCountToDatabase2();
            animationView2.playAnimation();
            Intent intent = new Intent(MainActivity.this, NotifActivity.class);
            startActivity(intent);
            finish();
        });
    }
    private void incrementClickCount1() {
        clickCount1++;
    }
    private void incrementClickCount2() {
        clickCount2++;
    }
    private void saveClickCountToDatabase1(){
        mDatabase.child("FeedBack").child("Likes").setValue(clickCount1);
    }
    private void saveClickCountToDatabase2(){
        mDatabase.child("FeedBack").child("Dislikes").setValue(clickCount2);
    }
}
8aqjt8rx

8aqjt8rx1#

如果要递增数据库中的计数器,请使用其原子递增操作。对于你的结构,看起来像这样:

mDatabase.child("FeedBack").child("Likes").setValue(ServerValue.increment(1))

相关问题