如何将 Glide 与 Firebase 数据库一起使用?

How can I use Glide with Firebase Database?

我对 Glide 有疑问。我想使用 Glide 下载图像。当我使用 link 时,它是这样工作的;

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);

哪里错了?我该如何解决?非常感谢大家!

您的问题是以下行 returns FirebaseDatabase 不是字符串:

FirebaseDatabase firebasedatabase = FirebaseDatabase().getInstance().getReference(“name of database”).child(id).child(“imageUrl”);

你需要在获取字符串值时监听它,然后像这样添加滑行:

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) {

        }
    })

您正在加载中使用 '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) {

                }
            });