У меня есть следующая структура:
Здесь 'subject' - это массив хэш-карт
Теперь я хочучтобы найти все документы с идентификатором = 1 в моей коллекции.
Класс ученической коллекции:
String name;
String div;
String phoneNumber;
ArrayList<SubjectInStudentModel> subjects=new ArrayList<>();
SubjectInStudent class:
int id;
ArrayList<String> dates=new ArrayList<String>();
Что я уже пробовал:
db.collection("student").whereEqualTo("subjects.id", subjectId).get()
возвращает пустой набор документов. Я думаю, поскольку существует несколько хэш-карт, а не одна, этот запрос не выполняется.
Map<String,Integer> test = new HashMap<>();
test.put("id",subjectId);
db.collection("student").whereArrayContains("subjects", test).get()
Это работает, когда в хэш-карте нет «дат».
Аналогично, приведенные ниже коды работают, когдадаты нулевые
SubjectInStudentModel subjectInStudentModel = new SubjectInStudentModel();
subjectInStudentModel.setDates(new ArrayList<String>());
subjectInStudentModel.setId(subjectId);
db.collection("student").whereArrayContains("subjects", subjectInStudentModel).get()