У меня есть класс модели Appointment
, который имеет тип как поле, Мне нужно прослушать и получить все документы из его subCollection
в базе данных реального времени Firestore ,Логика загрузки работает отлично, но так как я практически впервые захожу в пожарный магазин, у меня возникают некоторые проблемы с получением данных.
после получения документов Мне нужно разделить их по типу (Назначение type_A, Назначение type_B)
Это то, чего я добился до сих пор, но, кажется, я не могу пройти мимо этого!
PS.Приведенный ниже код в основном основан на документации Firebase!
@Override
public void onStart() {
super.onStart();
//get all appointments
mFirestore.collection("reporters").document(mUser.getUid()).collection("appointments")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
mFirestore.collection("reporters").document().collection("appointments")
.whereEqualTo("type", "typeB")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Toast.makeText(getActivity(), "listen failed", Toast.LENGTH_SHORT).show();
return;
}
for (QueryDocumentSnapshot doc : value) {
if (doc.get("name") != null) {
v_appointmentsList.add(doc.toObject(Appointment.class));
}
}
}
});
mFirestore.collection("reporters").document().collection("appointments")
.whereEqualTo("type", "typeA")
.addSnapshotListener(new EventListener<QuerySnapshot>() {
@Override
public void onEvent(@Nullable QuerySnapshot value,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Toast.makeText(getActivity(), "listen failed", Toast.LENGTH_SHORT).show();
return;
}
for (QueryDocumentSnapshot doc : value) {
if (doc.get("name") != null) {
p_appointmentsList.add(doc.toObject(Appointment.class));
}
}
}
});
//get all docs
//....
//sort by date [max -> min || min -> max]
//...
//get index [0] || index [last]
//...
//if it is vax then affect to variables v_
//if it is ped then affect to variables p_
}
});
}