Получить данные из onDataChange - PullRequest
0 голосов
/ 04 октября 2018

Мне нужно вернуть данные из Firebase в Java-объект, но даже используя интерфейс, он всегда возвращает мне ноль.Некоторая помощь?

Я создал объект "Coordinate" внутри метода, и я пытаюсь получить доступ к таким данным: readData(value -> coordinates = value , offer);

public interface CoordinatesCallback {
    void onCallBack(Coordinates value);
}

public void readData(CoordinatesCallback callback, Offer offer) {
    String storeId = Integer.toString(offer.getStore().getId());

    mDatabase.child("stores").child(storeId).child("coordinates").addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            Coordinates coordinates = dataSnapshot.getValue(Coordinates.class);

            callback.onCallBack(coordinates);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

1 Ответ

0 голосов
/ 04 октября 2018

Это не так, как getValue () работает.Вы должны передать ему объект Class Java POJO с геттерами и сеттерами для каждого поля базы данных, которую вы хотите прочитать.Из связанного Javadoc:

Этот метод используется для объединения данных, содержащихся в этом снимке, в класс по вашему выбору.Класс должен соответствовать 2 простым ограничениям:

  1. Класс должен иметь конструктор по умолчанию, который не принимает аргументов
  2. Класс должен определять общедоступные методы получения для назначаемых свойств.Для свойств без общедоступного метода получения будет установлено значение по умолчанию при десериализации экземпляра
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...