我有一个检索功能,它从firebase数据库和以下代码中获取数据:

FirebaseFirestore.getInstance().collection("products")
            .get()
            .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                @Override
                public void onComplete(@NonNull Task<QuerySnapshot> task) {
                    if (task.isSuccessful()){
                        for (int i=0; i<task.getResult().size(); i++){
                            Products p = new Products();
                            String Userid = task.getResult().getDocuments().get(i).getData().get("UserID").toString();
                            Log.d(TAG, "onComplete: "+Userid);

                            if (Userid.equals(FirebaseAuth.getInstance().getCurrentUser().getUid())){
                                String price = task.getResult().getDocuments().get(i).getData().get("productPrice").toString();
                                String Image = task.getResult().getDocuments().get(i).getData().get("UrlImage0").toString();
                                String title = task.getResult().getDocuments().get(i).getData().get("productName").toString();
                                // add all these data to the product  class
                                Log.d(TAG, "onComplete: "+price+ title+Image);
                                p.setTitle(title);
                                p.setPrice(price);
                                p.setProductImage(Image);
                                viewProduct.onSuccess(p);
                            }



                            viewProduct.onSuccess(p);
                        }

                    }else {
                        viewProduct.onError("Something went wrong");
                    }
                }
            });


我将数据加载到带有gridview和以下代码的recyclerview中:

ListDataView.setLayoutManager(new GridLayoutManager(this, 2));
    ListDataView.setHasFixedSize(true);
    ListOutDateAdapter = new productAdapter(this, OutDateTrip);
    ListDataView.setAdapter(ListOutDateAdapter);
  //  ListDataView.invalidate();
    ListDataView.setHasFixedSize(true);
    ListDataView.addItemDecoration(new DividerItemDecoration(ListDataView.getContext(), DividerItemDecoration.VERTICAL));


问题
*它会继续加载图像上显示的数据*
java - 具有gridview的recyclerview以不同的索引号重复两次-LMLPHP

我已经检查了以下帖子,但没有解决我的问题
enter link description here

最佳答案

我已经一遍又一遍地检查了一个代码,这个问题我必须将项目两次添加到产品列表中,所以我删除了一个项目,一切都很好。

07-27 23:51