【发布时间】:2019-12-12 17:18:03
【问题描述】:
我尝试显示来自 Firebase 存储的图像。因此,我将图像上传到 firebase 存储并将链接保存到 firebase 实时数据库中。当我尝试使用毕加索图书馆(v 2.71828)检索它时,它不起作用,但根据代码,任务每次都成功。回看Firebase Storage,图片上传成功,图片链接成功存入firebase实时数据库。
我用 Glide 库尝试了相同的代码,但遇到了同样的问题。
预期:使用毕加索显示图像 得到:没有错误,没有图像显示
private void retrieveUserInfo()
{
rootRef
.child("Users").child(currentUserID)
.addValueEventListener(new ValueEventListener()
{
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
{
// if the user has created his profile then
if((dataSnapshot.exists()) && (dataSnapshot.hasChild("name") && (dataSnapshot.hasChild(("image")))))
{
String retrieveUserName = dataSnapshot.child("name").getValue().toString();
String retrieveUserStatus = dataSnapshot.child("status").getValue().toString();
String retrieveProfileImage = dataSnapshot.child("image").getValue().toString();
userName.setText(retrieveUserName);
userStatus.setText(retrieveUserStatus);
// using picasso library we will display the profile image
Picasso.get().load(retrieveProfileImage).into(userProfileImage);
}
// if the user don't wanna display image
else if((dataSnapshot.exists()) && (dataSnapshot.hasChild("name")))
{
String retrieveUserName = dataSnapshot.child("name").getValue().toString();
String retrieveUserStatus = dataSnapshot.child("status").getValue().toString();
userName.setText(retrieveUserName);
userStatus.setText(retrieveUserStatus);
}
else
{
//userName.setVisibility(View.VISIBLE);
Toast.makeText(SettingsActivity.this, "Please set and update your profile information...", Toast.LENGTH_LONG).show();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
{
}
});
}
【问题讨论】:
-
请在浏览器中检查您的网址是否正常
-
您能否提供您从 db 获取的数据类型,请记录
retrieveProfileImage。为了了解 Firebase 存储 url 令牌在一定时间后过期,因此更好地存储文件的位置。
标签: android firebase android-studio firebase-storage picasso