首页 > 解决方案 > 使用 glide 从 firebase 存储(cloud firestore)、FirebaseUi 中恢复图像

问题描述

请指导我。我使用依赖 'com.google.firebase:firebase-firestore 的 firestore 将数据保存在数据库中。然后我使用 FirebaseUi 'com.firebaseui:firebase-ui-firestore 使用 Glide 从 Firebase 存储中检索图像,但我遇到了上下文问题。这是我的代码:正确的方法是什么?谢谢你

public class TabAbonneAdapter extends FirestoreRecyclerAdapter<Usermodele,TabAbonneAdapter.HolderAbonne> {


    /**
     * Create a new RecyclerView adapter that listens to a Firestore Query.  See {@link
     * FirestoreRecyclerOptions} for configuration options.
     *
     * @param options
     */
    public TabAbonneAdapter(@NonNull FirestoreRecyclerOptions<Usermodele> options) {
        super(options);
        setHasStableIds(true);
    }

    @Override
    protected void onBindViewHolder(@NonNull HolderAbonne holder, final int position, @NonNull Usermodele model) {

        holder.userPseudo.setText(model.getPseudo());
        Date inscriptionInstance = model.getDateInscription();
        @SuppressLint("SimpleDateFormat")
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String dateinscrip = dateFormat.format(inscriptionInstance);
        Log.d("Date inscrption," ," = " + dateinscrip);
        holder.dateinscription.setText(dateinscrip);
        Glide.with(getContext)
                .load(model.getPhoto_url())
                .centerCrop()
                .placeholder(R.drawable.ic_aboneeprofil_avatar)
                .into(holder.userprofilImage);

    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public int getItemViewType(int position) {
        return position ;
    }



    @NonNull
    @Override
    public HolderAbonne onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_ajout,parent,false);

        return new HolderAbonne(view);
    }



    public class HolderAbonne extends RecyclerView.ViewHolder {
        ImageView userprofilImage;
        TextView  userPseudo,dateinscription;
        Button boutonAjouter;

        public HolderAbonne(@NonNull View itemView) {
            super(itemView);
           userprofilImage = (ImageView)itemView.findViewById(R.id.abonneprofilImage);
            userPseudo = (TextView)itemView.findViewById(R.id.AbonneName);
            dateinscription = (TextView)itemView.findViewById(R.id.dateinscription);
            boutonAjouter = (Button)itemView.findViewById(R.id.btnAjout);


        }

    }

}

标签: androidfirebasegoogle-cloud-firestorefirebase-storage

解决方案


Glide.with(holder.itemView.getContext()) // get context from view
.load(model.getPhoto_url())
.centerCrop()
.placeholder(R.drawable.ic_aboneeprofil_avatar)
.into(holder.userprofilImage);

推荐阅读