gpt4 book ai didi

java - 我试图通过完成子节点来返回列表

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:45 25 4
gpt4 key购买 nike

我试图通过完成子节点来返回列表。我有一个节点,其中包含另一个带有子节点的节点,我倾向于完全返回,但没有结果。

我收到以下错误:

System.err: com.google.firebase.database.DatabaseException: Expected a List while deserializing, but got a class java.util.HashMap

数据库:

image of database

private void preencherLista() {
pontos= new ArrayList<>();

databasePontos = ConfiguracoesFirebase.getPontos();
databasePontos.keepSynced(true);
databasePontos.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange( DataSnapshot dataSnapshot) {
try{
pontos.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Ponto ponto = snapshot.getValue(Ponto.class);
pontos.add(ponto);
}


adapter.atualizar(pontos);

}catch (Exception e){
e.printStackTrace();
}
}

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

}
});

这是我的模型:

public class Ponto implements Serializable {

public String id;
public String local;
public String descricao;
public String inicio;
public String termino;
public String url;
public String latitude;
public String longitude;
public List<Dia> dias = new ArrayList<>();
public Ponto() {
}

public Ponto(String id, String local, String descricao, String inicio, String termino, String url, String latitude, String longitude, List<Dia> dias) {
this.id = id;
this.local = local;
this.descricao = descricao;
this.inicio = inicio;
this.termino = termino;
this.url = url;
this.latitude = latitude;
this.longitude = longitude;
this.dias = dias;
}

public List<Dia> getDias() {
return dias;
}

public void setDias(List<Dia> dias) {
this.dias = dias;
}

public String getDescricao() {
return descricao;
}

public void setDescricao(String descricao) {
this.descricao = descricao;
}


public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getLocal() {
return local;
}

public void setLocal(String local) {
this.local = local;
}

public String getInicio() {
return inicio;
}

public void setInicio(String inicio) {
this.inicio = inicio;
}

public String getTermino() {
return termino;
}

public void setTermino(String termino) {
this.termino = termino;
}

public String getUrl() {
return url;
}

public void setUrl(String url) {
this.url = url;
}

public String getLatitude() {
return latitude;
}

public void setLatitude(String latitude) {
this.latitude = latitude;
}

public String getLongitude() {
return longitude;
}

public void setLongitude(String longitude) {
this.longitude = longitude;
}


public List<Dia> retornaDias(){
return null;
}
}

最佳答案

你的模型没问题。主要代码有一点问题。

private void preencherLista() {


databasePontos = ConfiguracoesFirebase.getPontos();
databasePontos.keepSynced(true);
databasePontos.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange( DataSnapshot dataSnapshot) {
ArrayList<Ponto> pontos = new ArrayList<Ponto>();
try{
pontos.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
Ponto ponto = snapshot.getValue(Ponto.class);
pontos.add(ponto);
}


adapter.atualizar(pontos);

}catch (Exception e){
e.printStackTrace();
}
}

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

}
});

希望这有帮助。

关于java - 我试图通过完成子节点来返回列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55667697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com