I have a method which should initialize my field variable currentTask
. I don't understand why I can't read my object from firebase. Here is the method:
private void getCurrentTask() {
final DatabaseReference dRef1 = database.getReference().child("Users").child(uid).child("CurrentTask");
dRef1.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
currentTask = dataSnapshot.getValue(CurrentTask.class);
} else {
Toast toast = Toast.makeText(TasksListActivity.this, "no magic", Toast.LENGTH_LONG);
toast.show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
if (currentTask == null) {
Toast toast = Toast.makeText(this, "magic)", Toast.LENGTH_LONG);
toast.show();
}
}
Toast no magic
never appears, so the object exists. But, in the end of the method toast magic
appears, which means currentTask == null
. Even after initialization!
And here is my database: