首页 > 解决方案 > 如何使用图像名称和路径从 Firebase 检索图像

问题描述

这是我在firebase中的images / ..文件夹下的图像

在此处输入图像描述

我创建了一个看起来像这样的模型类

public class AdminNewItemModel {
    String name , dis , price , image;

    public AdminNewItemModel() {
    }

    public AdminNewItemModel(String name, String dis, String price, String image) {
        this.name = name;
        this.dis = dis;
        this.price = price;
        this.image = image;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDis() {
        return dis;
    }

    public void setDis(String dis) {
        this.dis = dis;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String getImage() {
        return image;
    }

    public void setImage(String image) {
        this.image = image;
    }
}

我能够像这样获得其他字段名称价格等

        for(DataSnapshot x : snapshot.getChildren()){
            AdminNewItemModel temp = x.getValue(AdminNewItemModel.class);
            list.add(temp);
        }

但我不知道我现在如何使用图像名称来获取图像。

我通常使用这个毕加索来加载图像,但那个东西需要 url。请有任何建议

编辑:这就是我首先上传数据的方式

public static void addNewFoodItem(String cardNo , String name , String dis , String price , Uri image , Context context){
    FirebaseStorage storage = FirebaseStorage.getInstance();
    StorageReference storageReference = storage.getReference();

    String imageId = UUID.randomUUID().toString();
    AdminNewItemModel data = new AdminNewItemModel(name , dis , price , imageId);
    firebaseDatabase.getReference().child("food items").child(cardNo).child(name).setValue(data);



    StorageReference temp = storageReference.child("images/" + imageId);

    temp.putFile(image).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
            //Snackbar.make(context.findViewById(android.R.id.content) , "image uploaded" , Snackbar.LENGTH_LONG).show();
            Toast.makeText(context, "image uploaded", Toast.LENGTH_SHORT).show();
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(context , "failll imageeeee" , Toast.LENGTH_SHORT).show();
        }
    });

}

标签: androidfirebasefirebase-realtime-databasefirebase-storage

解决方案


推荐阅读