Для начала я новичок в Firestore и программировании Android.
У меня есть коллекция, в которой хранятся документы, каждый документ содержит массив семестров, внутри массива семестров будет массив карт, представляющих каждый семестр. Внутри отдельных карт семестра будет числовое поле, идентифицирующее семестр, а также другой массив, называемый "Студенты", где он будет содержать массив карт, где каждая карта будет представлять каждого студента и хранить три разных поля: ID студента, DaysPresent, Total,
Я пытаюсь найти способ прочитать данные для каждого отдельного студента, представленные идентификатором, таким образом, чтобы учесть номер семестра.
Например, если пользователь выберет Семестр 1, он войдет в массив Семестр, а затем загрузит значения из первого массива, который представляет Семестр 1, и затем отобразит все карты, которые представляют каждого учащегося, где присутствуют дни, и сумма может быть изменена и прочитана пользователем.
Одним из ключевых моментов является то, что общее число всегда будет одинаковым для каждой отдельной карты, что означает каждого отдельного студента.
Если вы собираетесь получить List<Semester>
или List<Student>
при запросе базы данных Cloud Firestore, обратите внимание, что в настоящее время это невозможно. Даже если эти объекты имеют тип Semester
и Student
, вы не сможете отобразить их в список объектов Semester/Student. Чтобы решить эту проблему, вам нужно написать код для итерации этих объектов, чтобы вы могли преобразовать их из List<Map>
в List<Semester>
и List<Student>
. Таким образом, вы должны применить свою собственную логику для этого.
Редактировать:
Тип объекта, который возвращается при вызове:
document.getData();
Является ли Map<String Object>
, поэтому вам нужно перебирать карту в соответствии с вашей логикой и получать данные по мере необходимости.