Как читать / обновлять значения, хранящиеся внутри карты, которая затем находится внутри массива в Cloud Firestore? - PullRequest
1 голос
/ 12 апреля 2019

Начнем с того, что я новичок в Firestore и Android-программировании.

У меня есть коллекция, в которой хранятся документы, каждый документ содержит массив семестров, внутри массива семестров будет массив картпредставляя каждый семестр.Внутри отдельных карт семестра будет числовое поле, идентифицирующее семестр, а также другой массив, называемый «Студенты», где он будет содержать массив карт, где каждая карта будет представлять каждого студента и хранить три разных поля: ID студента, DaysPresent, Total.

Я пытаюсь найти способ считывания данных для каждого отдельного студента, представленного идентификатором, таким образом, чтобы учитывался номер семестра.

Например, еслиПользователь выбирает Семестр 1, он идет в массив Семестр, а затем загружает значения из первого массива, который представляет Семестр 1, и затем отображает все карты, которые представляют каждого учащегося, где можно изменить количество дней и общее количество дней.и прочитано пользователем.

Одним из ключевых моментов является то, что общее число всегда будет одинаковым для каждой отдельной карты, что означает каждого отдельного студента.

Screenshot

1 Ответ

1 голос
/ 12 апреля 2019

Если вы собираетесь получить List<Semester> или List<Student> при запросе базы данных Cloud Firestore, обратите внимание, что в настоящее время это невозможно.Даже если эти объекты имеют тип Semester и Student, вы никак не можете отобразить их в список объектов Semester / Student.Чтобы решить эту проблему, вам нужно написать код для итерации этих объектов, чтобы вы могли преобразовать их из List<Map> в List<Semester> и List<Student>.Поэтому вам необходимо применить собственную логику для этого.

Редактировать:

Тип объекта, который возвращается при вызове:

document.getData();

Это Map<String Object>, поэтому вам нужно перебирать карту в соответствии с вашей логикой и получать данные по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...