Я хотел получить несколько документов в коллекции. Документ должен получить имя и специальность из документа. Но каждый раз, когда я запускаю приложение, документы извлекаются и отображаются в recyclerView в виде списка (как в мессенджере WhatsApp), но поля не отображаются в TextViews
. То есть RecyclerView
отображает пустые списки CardView без текстов (ie имя и специальность, которые я хотел бы отобразить)
Ниже приведен код для модели, адаптера и действия:
МОДЕЛЬ
public class Doctor {
private String name;
private String DoctorImageURL;
private String specialty;
public Doctor() {
//empty constructor needed
}
public Doctor(String name, String specialty) {
this.name = name;
this.specialty = specialty;
}
public String getmDoctorName() {
return name;
}
public String getmDoctorSpecialty() {
return specialty;
}
АДАПТЕР
public class DoctorAdapter extends FirestoreRecyclerAdapter<Doctor, DoctorAdapter.DoctorHolder> {
public DoctorAdapter(@NonNull FirestoreRecyclerOptions<Doctor> options) {
super(options);
}
@Override
protected void onBindViewHolder(@NonNull DoctorHolder doctorHolder, int i, @NonNull Doctor doctor) {
doctorHolder.Name.setText(doctor.getmDoctorName());
doctorHolder.Specialty.setText(doctor.getmDoctorSpecialty());
//doctorHolder.DocImage.setImageResource(unifiedModel.getmDoctorImageURL());
//Load images here
}
@NonNull
@Override
public DoctorHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.doctor_list_view_items,
parent, false);
return new DoctorHolder(view);
}
class DoctorHolder extends RecyclerView.ViewHolder{
TextView Name, Specialty;
ImageView DocImage;
public DoctorHolder(@NonNull View itemView) {
super(itemView);
Name = itemView.findViewById(R.id.doctor_name);
Specialty = itemView.findViewById(R.id.doctor_specialty);
DocImage = itemView.findViewById(R.id.doctor_image);
}
}
ДЕЯТЕЛЬНОСТЬ
public class DoctorActivity extends AppCompatActivity {
FirebaseAuth firebaseAuth;
private FirebaseFirestore rootReference = FirebaseFirestore.getInstance();
private CollectionReference doctorRef = rootReference.collection("doctor");
private DoctorAdapter doctorAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_doctor);
firebaseAuth = FirebaseAuth.getInstance();
setUpRecyclerView();
}
private void setUpRecyclerView() {
// Query FireStore and order items by name in Ascending order
Query query = doctorRef.orderBy("name", Query.Direction.ASCENDING);
FirestoreRecyclerOptions<Doctor> options = new FirestoreRecyclerOptions.Builder<Doctor>()
.setQuery(query, Doctor.class)
.build();
doctorAdapter = new DoctorAdapter(options);
RecyclerView recyclerView = findViewById(R.id.doctor_recycler_view);
recyclerView.setHasFixedSize(true); // For performance reasons
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(doctorAdapter);
}
@Override
protected void onStart() {
super.onStart();
doctorAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
doctorAdapter.stopListening();
}
}
это результат:
Изображение структуры моей базы данных