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

时间:2019-01-10 09:49:34

标签: android firebase firebase-realtime-database firebase-storage android-glide

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

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

2 个答案:

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

                }
            });