Получать данные из Firebase методично - PullRequest
0 голосов
/ 19 января 2020

Как я могу получить данные из firebase для 2 разных конструкторов? Вот мой класс Яйца. Я хочу получать только данные о прокладке для одного и штриховку и статус для другого.

private String laying, hatching,status;

public Eggs() {
}
public  Eggs(String laying)
{
    this.laying=laying;
}
public Eggs(String hatching, String status) {
    this.hatching = hatching;
    this.status = status;
}

Я использую этот метод для извлечения данных из firebase

         public void onDataChange(@NonNull DataSnapshot dataSnapshot) {      
                for (DataSnapshot breedingSnap : dataSnapshot.getChildren()) {
                    Eggs data = breedingSnap.getValue(Eggs.class);
                    eg.add(data);
                }            
            });

Как я могу реализовать что-то вроде этого-

Eggs laying=new Eggs(String laying);
Eggs st=new Eggs(String hatching,String status);

затем добавить их в список рассылки?

Ответы [ 2 ]

0 голосов
/ 19 января 2020
public class Eggs {
    @Nullable
    private String laying;
    @Nullable
    private String hatching;
    @Nullable
    private String status;

    public String getLaying() {
        return laying;
    }

    public void setLaying(String laying) {
        this.laying = laying;
    }

    public String getHatching() {
        return hatching;
    }

    public void setHatching(String hatching) {
        this.hatching = hatching;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
}
0 голосов
/ 19 января 2020

Используйте DataSnapshot , переданный onDataChange, чтобы получить соответствующие дочерние снимки с помощью child () , прочитать их с помощью getValue () и передать их Ваш конструктор.

Документация для getValue () гласит:

getValue () возвращает данные, содержащиеся в этом снимке, как собственные типы. Возможные типы:

  • Boolean
  • String
  • Long
  • Double
  • Карта
  • Список

Этот список является рекурсивным; возможные типы для объекта в приведенном выше списке приведены в том же списке. Эти типы соответствуют типам, доступным в JSON.

Например, чтобы прочитать строковое дочернее значение, называемое «laying», из снимка:

DataSnapshot layingSnapshot = breedingSnap.child("laying");
String laying = (String) layingSnapshot.getValue();

Итак, вам придется знать имена детей, чтобы прочитайте, а также проверьте и приведите их ожидаемые типы. Чтобы избежать проблем во время выполнения, вы также должны проверить тип дочернего значения перед его преобразованием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...