У меня проблема с получением данных из базы данных Firebas по нескольким путям. Я пишу клон Endomondo, и у меня есть структура базы данных следующим образом:
users:
user_1:
name:
....
friends:
user_2
user_3
user_2:
...
workouts:
user_1:
workout_1:
distance:
duration:
path:
etc.
user_2:
Теперь я хочу перечислить все тренировки моих друзей на вкладке ленты. Поэтому для этого мне нужно сделать три вещи.
1) Переберите мой профиль (user_1), чтобы получить все идентификаторы моих друзей.
2) Когда у меня есть эти идентификаторы, мне нужно перебрать их профили, чтобы отобразить их имена.
3) Повторяйте тренировки, чтобы получить все тренировки моих друзей.
А теперь я хочу поместить всю эту информацию в один объект, скажем, «FriendWorkout», который будет выглядеть так:
FriendWorkout:
String friendName;
Workout workout; // contains all workout data(path, time, distance)
И поместите все эти объекты в список, чтобы я мог передать его адаптеру.
JSON:
{
"users" : {
"BLhXU5eJGtZayRrUGYTrGiImg313" : {
"avatarUrl" : "https://firebasestorage.googleapis.com/v0/b/alphaui-40ee2.appspot.com/o/avatars%2Favatars%2FBLhXU5eJGtZayRrUGYTrGiImg313.jpg?alt=media&token=c6b00937-6970-4f43-8ea4-b9add33c43e1",
"email" : "xhh@gmail.com",
"firstName" : "Jadwiga",
"friends" : {
"CTS134a7vtMWcBs7N2ynDKSyKj23" : true,
"DoXUtoa7vtMWcBs7N2ynDKSyKj23" : true
},
"lastWorkout" : "-LRGN8H6a1esdUPvb-ve",
"surname" : "Szalony"
},
"CTS134a7vtMWcBs7N2ynDKSyKj23" : {
"avatarUrl" : "none",
"email" : "ofca@wp.pl",
"firstName" : "Leokadia",
"friends" : {
"BLhXU5eJGtZayRrUGYTrGiImg313" : true
},
"lastWorkout" : "dasdsa",
"surname" : "Fin"
}
},
"workouts" : {
"BLhXU5eJGtZayRrUGYTrGiImg313" : {
"-LRGN3sEJgrNxRH3Hf6j" : {
"date" : "Wed, 14 Nov 2018 09:39:41",
"distance" : 0,
"duration" : "0:00",
"workoutName" : "Running"
},
"-LRGN68Z_s5dUjlkuhB-" : {
"date" : "Wed, 14 Nov 2018 09:39:50",
"distance" : 0,
"duration" : "0:00",
"workoutName" : "Running"
}
},
"DoXUtoa7vtMWcBs7N2ynDKSyKj23" : {
"-LRGSafxbmKWGLy5x-Kd" : {
"date" : "Wed, 14 Nov 2018 10:03:50",
"distance" : 0,
"duration" : "0:02",
"workoutName" : "Running"
}
}
}
}