Как получить изображения, которые были сохранены в базе данных Firebase и отображены в представлении переработчика? - PullRequest
0 голосов
/ 13 мая 2019

В настоящее время я работаю над проектом, который использует FireBase.У меня проблемы с использованием firebase.Как получить изображения?

public class ViewHolder extends RecyclerView.Adapter<ViewHolder.ImageViewHolder> {
    private  Context mContext;
    private List<Model> mModel;

    public ViewHolder(Context context, List<Model> models)
    {
        mContext=context;
        mModel=models;
    }
    @NonNull
    @Override
    public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
        View v = LayoutInflater.from(mContext).inflate(R.layout.row, viewGroup,false);
        return new ImageViewHolder(v);
    }

    @Override
    public void onBindViewHolder(@NonNull ImageViewHolder imageViewHolder, int i) {
        Model mModelcur = mModel.get(i);
        imageViewHolder.img_description.setText(mModelcur.getDescription());
        Picasso.get().load(mModelcur.getImage()).into(imageViewHolder.image_view);
    }

    @Override
    public int getItemCount() {
        return mModel.size();
    }

    public class ImageViewHolder extends RecyclerView.ViewHolder
    {
        public TextView img_description;
        public ImageView image_view;
        public ImageViewHolder(@NonNull View itemView) {
            super(itemView);

            img_description = itemView.findViewById(R.id.rDescription);
            image_view = itemView.findViewById(R.id.rImageview);
        }
    }  
}

Приведенный выше код показывает видоискатель, в то время как этот код предназначен для выполнения firebase с видоискателем и геттером и сеттером, который является моделью

public class Ordering extends AppCompatActivity {

    private RecyclerView mRecyclerView;
    private ViewHolder mAdapter;
    private DatabaseReference mDatabaseReference;
    private List<Model> mModel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ordering);

        mRecyclerView= findViewById(R.id.recyclerview);
        mRecyclerView.setHasFixedSize(true);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

        mModel = new ArrayList<>();
        mDatabaseReference=FirebaseDatabase.getInstance().getReference("Data");
        mDatabaseReference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot postSnapshot:dataSnapshot.getChildren())
                {
                    Model model=postSnapshot.getValue(Model.class);
                    mModel.add(model);
                }
                mAdapter=new ViewHolder(Ordering.this, mModel);
                mRecyclerView.setAdapter(mAdapter);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
                Toast.makeText(Ordering.this, databaseError.getMessage(), Toast.LENGTH_LONG).show();
            }
        });
    }
}
* 1006.* Код работает, но он показывает только эту часть утилизатора .Я уже сделал базу данных, которая выглядит как эта база данных .Как показать изображения, которые были сохранены в базе данных, и показать их в представлении переработчика?Я все еще новичок в использовании firebase. Может кто-нибудь мне помочь, пожалуйста?

Это мой model.class @Alex открытый класс Model {

String title,image,description; //These must be match in the firebase database

//Constructor
public Model()
{

}

//getter and setter


public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getImage() {
    return image;
}

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

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

}

Ответы [ 3 ]

0 голосов
/ 13 мая 2019

Похоже, проблема в том, что с вашего изображения используется Picasso 2.71828, а затем вы можете увидеть обратный вызов обработки изображения и увидеть, что там не так

Picasso.get().load(mModelcur.getImage()).into(imageViewHolder.image_view , new Callback() {
        @Override
        public void onSuccess() {

        }

        @Override
        public void onError(Error e) {
            Log.i("log" , e.getMessage());
        }
    });
0 голосов
/ 13 мая 2019

Вы получаете следующую ошибку:

Не найдено установщика / поля для изображения в классе com.example.firebaseproject.Model

Поскольку вы используете в своем классе Model файлы без модификатора. Чтобы решить эту проблему, измените модификатор на private:

private String title, image, description;
0 голосов
/ 13 мая 2019
override fun onStart() {
    super.onStart()
    mRecyclerView.startListening()
}

override fun onStop() {
    super.onStop()
    mRecyclerView.stopListening()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...