为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

月关宝盒 2022-09-14 10:41:18
我在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();
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

由于您仅在 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();


希望这有帮助!


查看完整回答
反对 回复 2022-09-14
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

试试这个

  private FirebaseAuth mAuth; 
  private FirebaseUser mCurrentUser;

初始化它

mAuth = FirebaseAuth.getInstance();
mCurrentUser = mAuth.getCurrentUser();

在图像视图中使用毕加索加载照片网址

 Picasso.get().load(mCurrentUser.getPhotoUrl())
                .into(imageView);


查看完整回答
反对 回复 2022-09-14
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信