如何获取电子邮件帐户用户的照片网址,该用户通过Firebase身份验证通过电子邮件登录登录进入

我在Android应用程序项目中仅使用电子邮件/密码使用Firebase身份验证。我试图访问已用于登录应用程序的电子邮件帐户的图片。但是,当我尝试以下这三种方法时,photoUrl为空,并且我正在使用自己的电子邮件帐户进行测试,我知道该帐户具有个人资料图片。


    // METHOD ONE

    Uri photoUrl = mFirebaseUser.getPhotoUrl();


    if (photoUrl != null) {

        log.d("PhotoUrl",photoUrl.toString());

    }



    // METHOD TWO

    UserInfo userInfo = mFirebaseUser.getProviderData().get(0);

    Uri photoUrl = (Uri) userInfo.getPhotoUrl();


    if (photoUrl != null) {

        log.d("PhotoUrl",photoUrl.toString());

    }



    // METHOD THREE

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


        Uri photoUrl = userInfo1.getPhotoUrl();


        if (photoUrl != null){

            break;

        }

    }


    if (photoUrl != null) {

        log.d("PhotoUrl",photoUrl.toString());

    }

我能够像这样轻松获取电子邮件帐户的名称


    String name = mFirebaseUser.getDisplayName();


月关宝盒
浏览 79回答 2
2回答

互换的青春

由于您仅在 FirebaseAuth 中使用电子邮件登录,因此当您尝试检索用户的照片网址时会出现问题,因为默认情况下用户没有照片网址。因此,您可以做的是要求用户设置照片并使用FirebaseAuth保存网址(以便以后可以检索)。您可以使用下面的代码为用户保存照片 URL。UserProfileChangeRequest userProfileChangeRequest = new UserProfileChangeRequest.Builder()                    .setDisplayName("set new display name")                    .setPhotoUri(uri)                    .build();    FirebaseAuth.getInstance().getCurrentUser().updateProfile(userProfileChangeRequest);设置照片网址后。尝试获取照片网址FirebaseAuth.getInstance().getCurrentUser().getPhotoUrl();希望这有帮助!

蝴蝶不菲

试试这个  private FirebaseAuth mAuth;    private FirebaseUser mCurrentUser;初始化它mAuth = FirebaseAuth.getInstance(); mCurrentUser = mAuth.getCurrentUser();在图像视图中使用毕加索加载照片网址 Picasso.get().load(mCurrentUser.getPhotoUrl())                 .into(imageView);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java