java - 无法从 Firebase 下载照片 - 空白 ImageView

标签 java android firebase

我有 GridView 适配器,我想通过照片的 URL 从 Firebase 存储下载照片。

当我将 URL 传递给 GridViewAdapter 时,照片是空白的。有空间,但没有图片。就像透明图片一样。

如果我传递在 Google 中找到的图像网址,它可以工作,但它不适用于 Firebase Storage 的网址。怎么了?

这是我尝试从 Firebase Storage 获取网址的方法 我正在获取包含所有 URL 的节点的 DataSnapshot

databaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                photos.clear();
                for(DataSnapshot ds: dataSnapshot.getChildren()){
                    String photoURL = ds.getValue(String.class);
                    try {
                        photos.add(photoURL);


                    }catch (NullPointerException e) {
                    }
                }
                gridViewAdapter = new GridViewAdapter(getContext(), photos);
                gridView.setAdapter(gridViewAdapter);

            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                }
        });

我的GridViewAdapter.class,getView方法

@Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View gridView = convertView;

        if(convertView == null){

            inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            gridView = inflater.inflate(R.layout.image_item,null);

        }

        ImageView imageView = gridView.findViewById(R.id.image_from_photo_album);

        Picasso.with(context).load(photos.get(position)).into(imageView);

        return imageView;
    }

不带 Firebase 存储 URL 的 ScreenView:

ScreenView without Firebase Storage URL

带有 Firebase 存储 URL 的 ScreenView:

ScreenView with Firebase Storage URL

最佳答案

尝试将 Picasso.with(context).load(photos.get(position)).into(imageView) 更改为: 字符串 url = photos.get(position); Picasso.with(context).load(url).into(imageView)

另外:也许您来自 Firebase 的照片网址始终为 Null,您调试过它吗?

关于java - 无法从 Firebase 下载照片 - 空白 ImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55716036/

相关文章:

java - HttpClientErrorException getResponseBodyAsString() 无法将字节解析为字符串

java - HibernateTemplate 可以与 Envers 一起使用吗?如果是这样,怎么办?

java - 如何使用代码设置 Activity 的背景?

java - 我的代码没有使用 Parse Query 从 parse.com 提取信息

android firebase 从datasnapshot 获取字符串到外部

java - 删除字符串Java中的单引号

java - 如何在 Java 中将字节值(8 位)添加到字符串并以字节形式读回

java - setText() 从数据库到 TextView

firebase - 依赖文档引用的Firestore访问规则

java - Firebase 数据库路径 : 1. 0 无效。Firebase 数据库路径不得包含 '.' 、 '#' 、 '$' 、 '[' 或 ']'