Java 从firebase methodwise检索数据

Java 从firebase methodwise检索数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,如何从firebase检索两个不同构造函数的数据?这是我的鸡蛋课。我只想收到一个铺设和孵化和另一个状态 private String laying, hatching,status; public Eggs() { } public Eggs(String laying) { this.laying=laying; } public Eggs(String hatching, String status) { this.hatching = hatching; thi

如何从firebase检索两个不同构造函数的数据?这是我的鸡蛋课。我只想收到一个铺设和孵化和另一个状态

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);
然后将它们添加到arraylist?

使用传递给onDataChange的命令到达相关的子快照,使用读取它们,并将它们传递给构造函数

getValue()的文档说明:

getValue()将此快照中包含的数据作为本机数据返回 类型。返回的可能类型包括:

  • 布尔值
  • 长的
  • 双重的
  • 地图
  • 名单
这个列表是递归的;上述列表中对象的可能类型由同一列表给出。这些类型对应于JSON中可用的类型

例如,要从快照中读取名为“laying”的字符串子值,请执行以下操作:

DataSnapshot layingSnapshot = breedingSnap.child("laying");
String laying = (String) layingSnapshot.getValue();
因此,您必须既知道要读取的子对象的名称,又必须检查并强制转换其预期类型。为了避免运行时问题,您还应该在强制转换子值之前检查其类型

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;
    }
}