On running the code below, I get this error:
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.database.DatabaseReference com.google.firebase.database.DatabaseReference.child(java.lang.String)' on a null object reference
I am getting the error on the line dataRef.child(dbs).addValueEventListener(new ValueEventListener(). I am not sure what is the problem.
public class UTFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { SharedPreferences prefs = getActivity().getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); String savedCollname= prefs.getString("collname", null); dataRef = FirebaseDatabase.getInstance().getReference().child(savedCollname); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UTFragment utFragment = new UTFragment(); UTFragment.MyAsync myTask = utFragment.new MyAsync(dbs,data); myTask.execute(); } class MyAsync extends AsyncTask<Void, Void, Void> { String dbs; public MyAsync(String dbs){ this.dbs = dbs; } @Override protected void onProgressUpdate(Void... values) { dataRef.child(dbs).addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { //do something }}
dataRefhasn't been initialized yet when you callchild(...)on it. So most likely your fragment'sonCreateViewhasn't been called when the task updates its progress.child()indataRefbefore it has been initialized. So I recommend initializing the DatabaseReference in your AsyncTask.'android.content.SharedPreferences android.support.v4.app.FragmentActivity.getSharedPreferences(java.lang.String, int)' on a null object reference@RosárioPereiraFernandes