如何在Firebase数据库中使用图像路径显示图像?

时间:2017-03-22 21:24:06

标签: android firebase firebase-realtime-database imageview uri

首先,我从图库中选择图片,然后将其上传到Firebase存储,并在图书节点中存储路径,以及有关图书的其他信息。

那么如何在imageView中获取图像并进行显示呢?

我的活动(我正在做什么来获取有关书籍的其他信息):

ref = dataBD.getReference("books");
ref.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

        for (DataSnapshot dataSnap : dataSnapshot.getChildren()) {

            Book valueBook=dataSnap.getValue(Book.class);
            String  idBookDisplay=valueBook.getId_Book();

       if(id_user.equals(idBookDisplay)){

           String titreLivreToDisplay=valueBook.getNom_livre();
           String descLivreToDisplay=valueBook.getDesc_livre();
           String prixLivreToDisplay=valueBook.getPrix_livre();
           String timeToDisplay=valueBook.getDate_creation();

           Book item = new Book();

           item.setNom_livre(titreLivreToDisplay);
           item.setDesc_livre(descLivreToDisplay);
           item.setPrix_livre(prixLivreToDisplay);
           item.setDate_creation(timeToDisplay);

           feedItems.add(item);


       }

        }


        listAdapter = new FeedListAdapter(AccueilActivity.this,feedItems);
        listView.setAdapter(listAdapter);
        listAdapter.notifyDataSetChanged();

    }

布局文件中的ImageView:

 <ImageView
                android:id="@+id/book_picture_display"
                android:layout_width="@dimen/feed_item_profile_pic"
                android:layout_height="@dimen/feed_item_profile_pic"
                android:scaleType="fitCenter" />

节点图书:

enter image description here

2 个答案:

答案 0 :(得分:0)

首先,请存储完整的图片路径,包括gs://<yourapp>.appspot.com/images/<your_image_name>这样的firebase存储域,您可以从firebase存储中下载图像。

使用当前可见的数据快照,这是解决方案。

由于

答案 1 :(得分:0)

我曾经解决FirebaseUI

storageRef = storageDisplayImg.getReferenceFromUrl(item.getChemin_image()‌​); // return gs://mydreambook-32321.appspot.com/images/test23-03-2017_16:46:55


           Glide.with(convertView.getContext() )
                   .using(new FirebaseImageLoader())
                   .load(storageRef)
                   .into(profilePic);
            profilePic.setVisibility(View.VISIBLE);