I try to get single record from my Firebase database and convert it as an object from Kategori class, determined by its id_kategor' attributes.
public class Kategori {
  private String nama_id;
  private String nama_en;
  private String id_kategori;
  private Integer jml_item = 0;
  private Integer jml_brand = 0;
  public Kategori(){}
  public Kategori(String id_kategori) {
    this.id_kategori = id_kategori;
    this.fetchData();
  }
  private void fetchData(){
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRef = database.getReference("kategori");
    myRef.child( this.id_kategori ).addListenerForSingleValueEvent(new ValueEventListener (){
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if( dataSnapshot.exists() ){
                String nama_en = dataSnapshot.child("nama_en").getValue(String.class);
                String nama_id = dataSnapshot.child("nama_id").getValue(String.class);
                Kategori.this.nama_en = nama_en;
                Kategori.this.nama_id = nama_id;
                Log.d(">>>>>> CHECK 1 >>>>>",Kategori.this.nama_en);
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {
        }
    });
    //Log.d(">>>>>> CHECK 2 >>>>>",this.nama_en);
  }
}
I expect all attributes can get its correct value from Firebase.
Logs with tag CHECK 1 shows the correct result that means successfully get its values from Firebase. 
But logs with tag CHECK 2 gives me run-time error *"java.lang.NullPointerException: println needs a message"*, that means **'nama_en'** attribute has *null* value, and also means the attribut failed to get it's value from Firebase ValueEventListener
What is exactly the problem?
Here is my data samples

 
     
    