У меня есть документ базы данных пожарного хранилища, который по сути выглядит так:
{
"name": "George",
"weeks": [
{
"checked": true,
"days": [
{
"checked": true,
"exercises": [
{
"exercise": "Bench Press",
"sets": [
{
"weight": 300,
"reps": 20
},
{
"weight": 400,
"reps": 30
}
]
}
]
}
]
}
]
}
Я знаю, что могу получить данные для документа, выполнив:
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference userRef = db.collection("users");
Query usersDataQuery = userRef.whereEqualTo("name", "George");
usersDataQuery.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()){
for(QueryDocumentSnapshot document: task.getResult()){
Log.d("data = ", document.getId() + " => " + document.getData());
}
}
}
});
, но затем документ.getData () возвращается как:
2 => {weeks=[{days=[{exercises=[{sets=[{weight=300, reps=20}, {weight=400, reps=30}, {weight=500, reps=40}], exercise=Bench Press}, {sets=[{weight=300, reps=20}, {weight=400, reps=30}, {weight=500, reps=40}], exercise=Skull Crushers}, {sets=[{weight=300, reps=20}, {weight=400, reps=30}, {weight=500, reps=40}], exercise=Flyes}, {sets=[{weight=600, reps=20}, {weight=900, reps=30}, {weight=780, reps=40}], exercise=Incline Bench Press}], checked=true}], checked=true}], name=George}
И у меня нет никакого способа получить вес в первом индексе «множеств».Вы могли бы подумать, что можете сделать что-то вроде: document.getData()["weeks"][0]["days"][0]["exercises"][0]["sets"][0]["weight"]
Но я не нашел способ сделать это так.Дайте мне знать, если есть хорошее решение для получения таких данных.