我对Glide有疑问。我想使用Glide下载图像。当我使用链接时,链接是这样工作的;
Glide.with(activity.this).load(pics direct url).into(imageview);
但是当我使用Firebase数据库时,不能像这样工作;
FirebaseDatabase firebasedatabase = FirebaseDatabase().getInstance().getReference(“name of database”).child(id).child(“imageUrl”);
Glide.with(activity.this).load(firebasedatabase).into(imageview);
哪里出问题了?我该如何解决?非常感谢大家!
答案 0 :(得分:1)
您的问题是以下行返回FirebaseDatabase而不是字符串:
FirebaseDatabase firebasedatabase = FirebaseDatabase().getInstance().getReference(“name of database”).child(id).child(“imageUrl”);
提取字符串时,您需要侦听字符串值,然后像这样添加Glide行:
firebasedatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String imageUrl = dataSnapshot.getValue(String.class);
Glide.with(activity.this).load(imageUrl).into(imageview);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
})
答案 1 :(得分:1)
您在加载时使用的是'firebasedatabase'对象,而不是 URL 。 在加载中,我们输入url。
DatabaseReference myref2 = FirebaseDatabase.getInstance().getReference("Yourself").child(userid).child(s);
myref2.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String image = dataSnapshot.child("image").getValue(String.class);
Glide.with(getContext()).load(image).into(ImageView)
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});