0

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?

0 Answers0