Firebase Auth: Android: no se puede mostrar el correo electrónico y la foto del usuario

He agregado Firebase Auth en mi aplicación de Android y estoy usando el inicio de sesión de Facebook y Google. Iniciar sesión funciona bien. Ahora quiero recuperar la información del perfil de usuario de la cuenta de Facebook o de Google del usuario (lo que sea, el usuario elija iniciar sesión) y mostrar la información en la actividad del perfil de usuario. Puedo recuperar y mostrar el nombre de usuario y el UID del usuario, sin embargo, el correo electrónico del usuario y la foto del usuario no se muestran, aunque se recuperaron.

Así es como estoy recuperando la información del usuario (LoginActivity.java):

authStateListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

                FirebaseUser user = firebaseAuth.getCurrentUser();

                if (user != null) {
                    //User is signed in

                    for (UserInfo userInfo : user.getProviderData()){

                        String user_name = userInfo.getDisplayName();
                        String user_email = userInfo.getEmail();
                        Uri user_img = userInfo.getPhotoUrl();
                        String user_id = userInfo.getUid();

                        SharedPreferences preferences = getSharedPreferences(UserInfoConstants.STRING_NAME,0);
                        SharedPreferences.Editor editor = preferences.edit();
                        editor.putString(UserInfoConstants.KEY_USER_NAME, user_name);
                        editor.putString(UserInfoConstants.KEY_USER_EMAIL, user_email);
                        editor.putString(UserInfoConstants.KEY_USER_ID, user_id);
                        editor.putString(UserInfoConstants.KEY_USER_IMG, user_img != null ? user_img.toString() : null);
                        editor.apply();
                    }

                } else {
                    //User is signed out
                    return;
                }
            }
        };

Así es como se muestra la información del usuario (ProfileActivity.java):

SharedPreferences preferences = getSharedPreferences(LoginActivity.UserInfoConstants.STRING_NAME,0);

        String user_img_uri = preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_IMG,"");

        if (user_img_uri.isEmpty()){

            userImgView.setImageResource(R.drawable.com_facebook_profile_picture_blank_portrait);
        } else {

            userImgView.setImageBitmap(getImageBitmap(user_img_uri));
        }
        userName.setText(preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_NAME,""));
        userEmail.setText(preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_EMAIL,""));
        userId.setText("ID: " + preferences.getString(LoginActivity.UserInfoConstants.KEY_USER_ID,""));

Busqué mucho al respecto, pero no puedo obtener ninguna resolución para el mismo.

¿¿¿¿Alguien puede ayudar????

Respuestas a la pregunta(1)

Su respuesta a la pregunta