I'm trying to get a boolean value from firebase database into my Android application. I've got it in a boolean variable but when I use this boolean value, it says a null object reference.
I'm trying to start a particular Intent based on the data in the firebase database. But It gives me this following error
public class SplashScreen extends AppCompatActivity {
Boolean rec_res;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash_screen);
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference rootRef = database.getReference();
rootRef.child("rec_res").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
rec_res = dataSnapshot.getValue(Boolean.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
int SPLASH_TIME_OUT = 2000;
new Handler().postDelayed(new Runnable() {
/*
* Showing splash screen with a timer. This will be useful when you
* want to show case your app logo / company
*/
@Override
public void run() {
// This method will be executed once the timer is over
// Start your app main activity
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnected = activeNetworkInfo != null && activeNetworkInfo.isConnected();
/* if(String.valueOf(rec_res).equals("true")) {
Intent k = new Intent(SplashScreen.this, RecruitRegActivity.class);
startActivity(k);
}*/
if (rec_res && isConnected) {
Intent i = new Intent(SplashScreen.this, RecruitRegActivity.class);
startActivity(i);
} else if(!isConnected){
Intent i = new Intent(SplashScreen.this, NoInternet.class);
startActivity(i);
} else {
Intent i = new Intent(SplashScreen.this, HomePage.class);
startActivity(i);
}
// close this activity
finish();
}
}, SPLASH_TIME_OUT);
This is the error I get
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.smec.tam, PID: 12815
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.smec.tam.SplashScreen$2.run(SplashScreen.java:99)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6316)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)