我在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();
希望这有帮助!
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
试试这个
private FirebaseAuth mAuth; private FirebaseUser mCurrentUser;
初始化它
mAuth = FirebaseAuth.getInstance(); mCurrentUser = mAuth.getCurrentUser();
在图像视图中使用毕加索加载照片网址
Picasso.get().load(mCurrentUser.getPhotoUrl()) .into(imageView);
添加回答
举报
0/150
提交
取消