I have a problem with retrieving data from firebase realtime database. It keeps giving me an error saying "java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference"
So this method is used to retrieve data from firebase database and log users in with their username and password.
I have tried if(Accounts.getPassword() != null && password.getText() != null && Accounts.getPassword().equals(password.getText().toString())) but no luck it still gives me the error.
private void isUser() {
final String userEnteredUsername = username.getText().toString().trim();
final String userEnteredPassword = password.getText().toString().trim();
DatabaseReference reff = FirebaseDatabase.getInstance().getReference("login");
Query checkUser = reff.orderByChild("username").equalTo(userEnteredUsername);
checkUser.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
String passwordFromDB = dataSnapshot.child(userEnteredUsername).child("password").getValue(String.class);
Accounts accounts = dataSnapshot.getValue(Accounts.class);
if (passwordFromDB.equals(userEnteredPassword){ // ****Line that code is not working****
String usernameFromDB = dataSnapshot.child(userEnteredUsername).child("username").getValue(String.class);
String accountFromDB = dataSnapshot.child(userEnteredUsername).child("account").getValue(String.class);
Intent intent = new Intent(getApplicationContext(), Driver.class);
intent.putExtra("username", usernameFromDB);
intent.putExtra("password", passwordFromDB);
intent.putExtra("account", accountFromDB);
startActivity(intent);
}
else {
password.setError("Wrong Password");
password.requestFocus();
}
}
else {
username.setError("Wrong username");
username.requestFocus();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}