Это структура моих данных:

Я пытаюсь получить значения аллергии ID1 и аллергии Id2. Есть ли способ получить значения «аллерген» и «описание» отдельно? Я хотел бы присвоить эти значения другому классу, который называется Allergy, и добавить их в ArrayList. Например:
Allergy allergy = new Allergy();
ArrayList<Allergy> allergies = new ArrayList<>();
// Data of "allergyId1"
allergy.setAllergen(the value of allergen);
allergy.setDescription(the value of description);
allergies.add(allergy);
Я пытался преобразовать объект, возвращаемый в объект Json, но я думаю, что должен быть более эффективный способ получения данных из Firestore.
private void retrieveAllergiesData() {
FirebaseUser user = mAuth.getCurrentUser();
DocumentReference ref = db.collection(user.getUid()).document("allergies");
ref.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document.exists()) {
Map<String, Object> tmp = new HashMap<>();
tmp = document.getData();
for (Map.Entry<String, Object> entry : tmp.entrySet()) {
Log.d("allergy", entry.getKey() + ":" + entry.getValue().toString());
}
} else {
Log.d("fb", "No such document");
}
} else {
Log.d("fb", "get failed with ", task.getException());
}
}
});
}
Это то, что я получаю
