首页 > 解决方案 > 从 Firebase 中检索图像和文本

问题描述

我要创建一个 android 应用程序。该应用程序的想法很简单,但由于我是新手,所以在实施过程中遇到了问题。应用名称将是食物描述。

它将包含一个按钮,当您按下按钮时,将显示有关每种食物的图像列表。例如鸡肉、见面等。这些图像应手动存储在 Firebase 中。当我按下任何图像时,它应该会给我关于食物的详细描述。此描述也应手动保存在 firebase 中。

问题是:

标签: androidfirebasefirebase-realtime-database

解决方案


要遵循的步骤:

  1. 在 Firebase 中创建一个与您正在构建的 android 项目具有相同包名的项目。

  2. 选择项目,然后按照以下步骤存储图像:

    • 转到存储。
    • 通过单击上传文件将图像添加到商店。
    • 完成上传图片后,您将获得每张图片的下载 URL。这就是你需要得到的图像。
  3. 进入数据库:

    • 创建一个数据库,让我们说food
    • 将您想要的食物信息放在数据库中,您需要为每种食物赋予独特的价值。
    • 然后对于每种食物,将键值对设置为 {name, image, description}。这里 name 是食物名称,description 是食物描述,对于图像,只需从存储中输入下载 URL。

现在在 Android 项目中。

为食物制作一个 POJO 模型类,如下所示

Class Food {
   public String name;
   public String Image;
   public String description;

   public String getName() {
       return name;
   }
   public String getImage() {
       return image;
   }
   public String getDescription() {
       return description;
   }
}

使用以下代码获取食物列表。

Firebase db = FirebaseDatabase.getInstance().getReference("foods");

mPostReference.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        // Get Post object and use the values to update the UI
        Food food = dataSnapshot.getValue(Food.class);
        ArrayList<Food> foodsList = new ArrayList<>();

       foodsList.add(food);
        // ...
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // Getting Post failed, log a message
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
        // ...
    }
});

您可以使用 Glide 或 picaso 设置图像

像下面

ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

  Glide.with(this).load(foodsList.get(index).getImage()).into(imageView);

请按照此处的步骤了解如何将数据从 firebase 嵌入到 RecyclerView

https://www.youtube.com/watch?v=vpObpZ5MYSE


推荐阅读