Reloading image from gallery using URI android

i am working with an android app where i can register user using FirebaseAUth. This allows me to get FirebaseUser objects where i can save a display name and also a photoURI. when the user logs in i give the user the option to pick an image from their gallery and put it in to the profilePicture imageView. I also take that particular picture uri and update the firebaseUser. Everything works smoothly up to this point, the image appears in the profile imageview and the update goes smoothly. The problem is when i exit and re open the app. The profile image appears empty but everything else displays(name etc). I am thinking that this is happening since the image is internal documents and maybe i am missing some permission or create some type of intent that will give me access to the image by giving it the user's photo uri. code will be provided below for those that want to look at it as well as pictures of what happens. first picture is when i pick the image and save it to user, second will be when re-opening the app. Thank you for your patience i am very new to android dev

First image
second Image

  public class HomePage extends AppCompatActivity {
    private static final int CHOOSE_IMAGE = 101;
    private static final int LOAD_IMAGE = 102;

    public TextView password;
   public ImageView weatherView;
   private ImageView newsView;
   public NavigationView navigationView;

   private ImageView profileImage;
   private Uri uri;

   private View headerLayout;

    private FirebaseAuth mAuth;
   private FirebaseUser user;
   private  FirebaseStorage storage;
    private StorageReference mStorageRef;
    public void onCreate(Bundle savedInstanceState) {
        mAuth = FirebaseAuth.getInstance();
        user = mAuth.getCurrentUser();

        storage = FirebaseStorage.getInstance();
        mStorageRef = storage.getReference();

        //Hooking up the xml fields with java
        weatherView = findViewById(;
        newsView = findViewById(;
        Toolbar toolbar = (Toolbar) findViewById(;
        navigationView = (NavigationView)findViewById(;
        headerLayout = navigationView.getHeaderView(0);
        profileImage = (ImageView)headerLayout.findViewById(;



        profileImage.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {


    private void setProfilePictureUpdate() {
        // this creates the intent to open all of the gallery pics
        Intent intent = new Intent();
        startActivityForResult(Intent.createChooser(intent,"Select Profile Picture"), CHOOSE_IMAGE);

    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == CHOOSE_IMAGE && resultCode == RESULT_OK && data != null && data.getData() != null){
         uri = data.getData();

            // update the user profile pics
             UserProfileChangeRequest profilePictureUpdate = new UserProfileChangeRequest.Builder().setPhotoUri(uri).build();

            user.updateProfile(profilePictureUpdate).addOnCompleteListener(new OnCompleteListener<Void>() {
                public void onComplete(@NonNull Task<Void> task) {
                    The instruction below here is able to load the image just fine. it is not here where the image does not load, it is when i
                    log in again and i want to display the user information so i call the setHeaderInfo method. The name and email address
                    displays fine but the image saved to the user previously does not load and nothing appears in my imageview. its as if it
                    cant go back to the phones gallery and reload it from there.

                    Toast.makeText(HomePage.this, "Profile Picture Updated!", Toast.LENGTH_SHORT).show();


     * @param user current user
     *             method loads all of the user information such as name, email address and profile picture

    private void setHeaderInfo( FirebaseUser user)  {

        TextView email = headerLayout.findViewById(;
        TextView name = headerLayout.findViewById(;
        System.out.println("USER PHOTO URI"+ user.getPhotoUrl().toString());

        // It is here where the image does not load and nothing appears for the profile image. I print the uri above and
        // it does contain a image uri the problem is loading
        //this is what prints out USER PHOTO URI content:// so i know it is saving it to user

        // tried to do the below but it requires Manage_Document permission which is only allow for special apps, not to sure what it meant.
      //  Bitmap bitmap = android.provider.MediaStore.Images.Media.getBitmap(getContentResolver(), user.getPhotoUrl());