So basically I created a page where the user can edit his name and email but it doesn't work when and the data remains the same in firebase. I tried calling the update function inside the on-create but that doesn't seem to work I even tried writing the whole code directly inside the on-create but the app crashed so I had decided to create the function update() and I tried calling the the update() function inside on-click but even that didnt work
this is my code
public class Profile extends AppCompatActivity {
    private FirebaseUser user;
    private DatabaseReference reference;
    private String userID;
    EditText Username,email;
    String name,mail;
    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
               Username=findViewById(R.id.Username1);
               email=findViewById(R.id.emailadress);
               button=findViewById(R.id.editinfo);
        user= FirebaseAuth.getInstance().getCurrentUser();
        reference= FirebaseDatabase.getInstance().getReference("Users");
        userID=user.getUid();
        reference.child("Driver").child(userID).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull  DataSnapshot snapshot) {
                Users usersnapshot=snapshot.getValue(Users.class);
                if(usersnapshot!=null){
                    String username=usersnapshot.getUsername();
                    String Email=usersnapshot.getMail();
                    String password=usersnapshot.getPassword();
                    Username.setText(username);
                    email.setText(Email);
                }
            }
            @Override
            public void onCancelled(@NonNull  DatabaseError error) {
            }
        });
        button.setOnClickListener(new android.view.View.OnClickListener() {
            @Override
            public void onClick(android.view.View v) {
      
            }
        });
    }
    public void update(){
        if(isNamechanged()||isEmailchanged()){
            Toast.makeText(this,"Data has been updated",Toast.LENGTH_LONG).show();
        }
    }
    public void onCancelled(@NonNull DatabaseError databaseError) { throw databaseError.toException(); }
    private boolean isEmailchanged() {
        if (!mail.equals(email.getText().toString())) {
            reference.child("Driver").child(userID).child("mail").setValue(email.getText().toString());
            mail=email.getText().toString();
            return true;
        } else {
            return false;
        }
    }
    private boolean isNamechanged() {
        if (!name.equals(Username.getText().toString())) {
            reference.child("Driver").child(userID).child("username").setValue(Username.getText().toString());
            name=Username.getText().toString();
            return true;
        }
        else {
            return false;
        }
    }
    }
This is my database
{
  "Users" : {
    "Customer" : {
      "0awTFPGUkIdzAaZEgYZMmGv1zwk1" : {
        "mail" : "1@gmai.com",
        "username" : "1234"
      }
    },
    "Driver" : {
      "S04QBZx3PxYaLfDWBC3j3otM5ml1" : {
        "mail" : "m.yusuf7423@gmail.com",
        "username" : "YUSUF"
      }
    }
  }
}
Also now my app started to crash and I get this problem in logcat
Process: com.example.deliveryapp, PID: 12806
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
Edit:in the layout page I added On-click option to call update so now it doesn't crash and doesn't throw any error but now nothing happens at all like I can here the sound of the button being clicked(which happens when there is an onclick function) but nothing happens at all this is the layout of that button
 <Button
        android:id="@+id/editinfo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="228dp"
        android:layout_marginLeft="228dp"
        android:layout_marginTop="456dp"
        android:onClick="update"
        android:text="edit"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
 
    