Firebase “Failed to convert a value of type java.util.HashMap to int”

后端 未结 3 1689
半阙折子戏
半阙折子戏 2021-01-21 17:05

At this line of my code in my OnDataChange() method in the ValueEvenListener:

int latest = dataSnapshot.getValue(Integer.class);
         


        
3条回答
  •  误落风尘
    2021-01-21 17:51

    This should work if we assume that the dataSnapshot is right.

    final DatabaseReference database = FirebaseDatabase.getInstance().getReference();
    database = database.child("Campaigns").child(key).child("count"); // replaced
    
            database.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    int latest = Integer.valueOf(dataSnapshot.getValue().toString()); // replaced
                    button.setText(latest + "");
                }
    
                @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(context, context.getString(R.string.error) + ": " + databaseError.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    

    Reminder : addValueEventListener will run everytime there is a change in the dataSnapshot. If you want to run it just once use addListenerForSingleValueEvent instead.

提交回复
热议问题