I am using below function having a query to retrieve data from firebase
DatabaseReference rootRef;
@Override
protected void onCreateonCreate(){
rootRef = FirebaseDatabase.getInstance().getReference();
getDriverStatus();
}
public void getDriverStatus(){
query = rootRef.child("Drivers").orderByChild("email");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
Log.d("Firebase","Searching driver..."); //works correctly
String phone = ds.child("mobile").getValue(String.class);
Log.d("Firebase",phone); //phone=null
if(phone.equalsIgnoreCase("1234")) //Exception + App crash here
{
Log.d("Firebase","Driver found");
status=ds.child("status").getValue(String.class);
break;
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("Firebase", databaseError.getMessage());
}
};
query.addListenerForSingleValueEvent(valueEventListener);
}
Following is what my test looks like:
Basically i want to get a Driver data with mobile no: say "1234". But my app crashes at the point if(phone.equalsIgnoreCase("1234")) and gives me the following error:
java.lang.NullPointerException: String.equalsIgnoreCase on a null object reference
Can any body tell me what is wrong with the code. Thanks in advance...!