Я использую Firebase, и я делаю запрос, чтобы получить данные, а затем я использую addChildEventListener
. Я также пробовал addValueEventListener
, чтобы получить результат. Ответ от dataSnapshot.getValue()
- HashMap
.Firebase query hashmap для класса
Я обнаружил, что каждый ключ в этом HashMap
(в первом случае) представляет собой поле в моем классе.
Есть ли более быстрый способ преобразования этого HashMap
в мой класс \ модель? Или мне нужно сделать это для каждого класса, который у меня есть?
Я нашел в LINK, что я могу использовать dataSnapshot.getValue(Trip.class);
, однако он выбрасывает DataseException
.
Мой опыт с отражением очень мало, но я понимаю, что теоретически могу его использовать, но не уверен, как, так что, если возможно, пример будет оценен.
Спасибо.
EDIT модель Trip, например (не все это, конечно, только для его просмотра)
public class Trip implements Model
{
private String ID;
private String driverID;
private LatLng addressFrom;
private LatLng addressTo;
private List<LatLng> locationList;
private boolean isActive;
}
HashMap
ответ, как это (во время отладки)
result = {[email protected]} size = 14
0 = {[email protected]} "fullAddress" -> "this is the address"
1 = {[email protected]} "addressFrom" -> " size = 2"
2 = {[email protected]} "state" -> "0"
3 = {[email protected]} "distanceMeter" -> "706"
4 = {[email protected]} "id" -> "-KX5Ihn7E_g8HEmsXXL3"
5 = {[email protected]} "duration" -> "157"
6 = {[email protected]} "timeMilliSeconds" -> "1479722067649"
7 = {[email protected]} "driverID" -> "RZZplHcojGWRoJdRH2SOswQvSBO2"
8 = {[email protected]} "addressTo" -> " size = 2"
9 = {[email protected]} "locationList" -> " size = 3"
10 = {[email protected]} "length" -> "706"
11 = {[email protected]} "active" -> "false"
12 = {[email protected]} "passengerCount" -> "1"
13 = {[email protected]} "endAddressText" -> "this is the end address text"
EDIT 2 (исключение из getValue (Trip.lass)
com.google.firebase.database.DatabaseException: Класс com.google.android.gms.maps.model.LatLng отсутствует конструктор без аргументов
Можете ли вы опубликовать свою модель класса и hashmap ответа? – rhari
@rhari, пожалуйста, проверьте изменение –
Можете ли вы также опубликовать исключение, которое вы получаете в logcat при использовании dataSnapshot.getValue (Trip.class); ? – rhari