Выше моя база данных в Firestore. Как видно, в качестве полей есть 2 строки и 2 (или более) массива.
Я буду извлекать данные для преобразования одного и того же в разные графики. Например: 1. График, показывающий сумму всех глав всех пользователей 2. График, показывающий сумму "chapter1" всех пользователей. 3. График, показывающий средние значения по всем главам и т. Д. c.,
. Эти графики будут отображаться в различных видах деятельности в зависимости от выбора пользователя, и расчеты выполняются с указанием c для этого действия.
Теперь моя проблема в том, чтобы получить доступ к этим данным, чтобы использовать их в различных действиях.
Я попытался использовать HashMap Map>, чтобы сохранить значения phonenumb, chapter (x) и значения chapter (x) соответственно.
Ниже приведен код для доступа к данным:
CollectionReference chemistry = db.collection("RESULTS").document("Summary").collection("ChemistryVII");
chemistry
.whereEqualTo("school", "Test School")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for (DocumentSnapshot document : task.getResult()) {
Map<String, Object> map = document.getData();
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (entry.getKey().contains("chapter")) {
if (outer.isEmpty() || !outer.containsKey(map.get("phonenumb"))) {
Map<String, Object> inner = new HashMap<>();
inner.put(entry.getKey(), entry.getValue());
String phonenumb = map.get("phonenumb").toString();
outer.put(phonenumb, inner);
} else {
Map<String, Object> inner = new HashMap<>();
inner.put(entry.getKey(), entry.getValue());
String phonenumb = map.get("phonenumb").toString();
outer.put(phonenumb, inner);
}
}
}
}
//Toast("Outer Details " + outer);
schoolGraph();
}
});
Однако это не будет работать, поскольку для данного ключа (номер телефона) может быть несколько записей.
Попытка понять, как лучше всего получить доступ к таким данным и использовать их для нескольких действий.