I'm trying to retrieve data from my Database but the app kept crashing with an exception java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference
public class SettingsActivity extends AppCompatActivity {
private DatabaseReference mDatabase;
private FirebaseUser mCurrentUser;
FirebaseDatabase database = FirebaseDatabase.getInstance();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
mDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(mCurrentUser.getUid());
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
Toast.makeText(SettingsActivity.this, dataSnapshot.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
This is my MainActivity, If the User is not Registered it will send him to StartActivity where he can either create an account or Login to an existing Account
@Override
public void onStart() {
super.onStart();
// Check if user is signed in (non-null) and update UI accordingly.
FirebaseUser currentUser;
currentUser = mAuth.getCurrentUser();
if (currentUser == null){
sendToStart();
}
}
private void sendToStart() {
Intent startIntent = new Intent(MainActivity.this, StartActivity.class);
startActivity(startIntent);
finish();
}
And this is my LoginActivity where Users can login to there existing accounts and return to the MainAcivity String email = mEmail.getText().toString(); String password = mPassword.getText().toString();
if (!TextUtils.isEmpty(email) || !TextUtils.isEmpty(password)) {
signIn(email, password);
}else{
Toast.makeText(LoginActivity.this, "Please fill the form correctly", Toast.LENGTH_SHORT).show();
}
}
});
}
private void signIn(String email, String password) {
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
FirebaseUser user = mAuth.getCurrentUser();
Intent main_intent;
main_intent = new Intent(LoginActivity.this, MainActivity.class);
main_intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(main_intent);
}else {
Toast.makeText(LoginActivity.this, "Login Failed Pls Check your Details and try again", Toast.LENGTH_SHORT).show();
}
}
});
Above is my code. Can someone help out, please?