这个问题没有直接答案,我尝试过各种方法。我需要将存储在 Firebase 数据库中的图像显示在 ImageView 中。
这是我当前的代码,它不起作用:
mUsersDB_photoUrl.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String photoUrl = dataSnapshot.child("photoUrl").getValue(String.class);
try {
Picasso.with(DisplayActivity.this).load(photoUrl).placeholder(R.mipmap.ic_launcher).into(Photo);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
调用用户名的方法有效:
mUsersDB_name.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Name.setText(dataSnapshot.getValue(String.class));
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
我在这方面并不擅长,我正在自学 Firebase。欢迎指点和指导。
最佳答案
您使用的是Picasso,所以我建议您在获取图像时使用getDownloadUrl()。
StorageReference storageRef = storage.getReference().child("profiles").child(myAccount.getUID()).child("profile");//reach out to your photo file hierarchically
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Log.d("URI", uri.toString()); //check path is correct or not ?
Picasso.with(DisplayActivity.this).load(uri.toString()).into(imageView);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle errors
}
});
关于java - 在 imageview 中显示来自 firebase 数据库的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974608/