I was trying to load data from Documents class using Recyclerview, but the error appear on logcat "W/Firestore: (21.1.1) [CustomClassMapper]: No setter/field for Document Name found on class id.MuhammadRafi.StockCount.Documents". By the way, where is my fault?
My Firestore Database
Documents field
Documents.class :
public class Documents extends DocumentID {
String documentName;
String documentDate;
String inspectorName;
String marketLocation;
public Documents() {
}
public Documents(String documentName, String documentDate, String inspectorName, String marketLocation) {
this.documentName = documentName;
this.documentDate = documentDate;
this.inspectorName = inspectorName;
this.marketLocation = marketLocation;
}
public String getDocumentName() {
return documentName;
}
public String getDocumentDate() {
return documentDate;
}
public String getInspectorName() {
return inspectorName;
}
public String getMarketLocation() {
return marketLocation;
}
public void setDocumentName(String documentName) {
this.documentName = documentName;
}
public void setDocumentDate(String documentDate) {
this.documentDate = documentDate;
}
public void setInspectorName(String inspectorName) {
this.inspectorName = inspectorName;
}
public void setMarketLocation(String marketLocation) {
this.marketLocation = marketLocation;
}
}
DocumentList.class :
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class DocumentList extends RecyclerView.Adapter<DocumentList.ViewHolder> {
private List<Documents> documentsList;
private Context context;
public DocumentList(Context context, List<Documents> documentsList) {
this.documentsList = documentsList;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_document_layout, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Documents adapterDocuments = documentsList.get(position);
holder.textViewDocumentName.setText(adapterDocuments.getDocumentName());
holder.textViewDate.setText(adapterDocuments.getDocumentDate());
holder.textViewInspector.setText(adapterDocuments.getInspectorName());
holder.textViewLocation.setText(adapterDocuments.getMarketLocation());
}
@Override
public int getItemCount() {
return documentsList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewDocumentName, textViewLocation, textViewInspector, textViewDate;
public ViewHolder(View itemView) {
super(itemView);
textViewDocumentName = itemView.findViewById(R.id.textNameDocument);
textViewLocation = itemView.findViewById(R.id.textLocation);
textViewInspector = itemView.findViewById(R.id.textInspector);
textViewDate = itemView.findViewById(R.id.textDocumentDate);
}
}
}
StartCounting.class :
public class StartCounting extends AppCompatActivity {
private DocumentList documentListAdapter;
private RecyclerView recyclerViewDocument;
private RecyclerView.LayoutManager layoutManager;
private FirebaseFirestore firebaseFirestore;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_counting);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
firebaseFirestore = FirebaseFirestore.getInstance();
documentsList = new ArrayList<>();
documentListAdapter = new DocumentList(getApplicationContext(), documentsList);
recyclerViewDocument = findViewById(R.id.recyclerViewDocument);
recyclerViewDocument.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
recyclerViewDocument.setLayoutManager(layoutManager);
recyclerViewDocument.setAdapter(documentListAdapter);
protected void onStart() {
super.onStart();
firebaseFirestore.collection("Users").document(currentUser.getUid()).collection("Documents").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()) {
for(DocumentSnapshot documentSnapshot : task.getResult()) {
Documents documents = documentSnapshot.toObject(Documents.class);
documentsList.add(documents);
documentListAdapter.notifyDataSetChanged();
}
}
}
});
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…