我正在尝试从我的Firebase实时数据库中获取有关receta的所有数据(链接到我的firebase recetas图像) image 当我使用下面的代码从中获取数据时,我获得了除描述和原点之外设置为null的所有数据
database = FirebaseDatabase.getInstance();
recetasReference = database.getReference().child("recetas");
recetasReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren()){
Receta new_receta = ds.getValue(Receta.class);
recetas.add(new_receta);
}
myAdapter.notifyDataSetChanged();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(getApplicationContext(), "Error al mostrar",
Toast.LENGTH_LONG)
.show();
}
});
我尝试调试,ds正确地具有了描述和来源,但我不为什么在创建Receta时将它们设置为null。 ds receta 任何想法? 抱歉,如果我在帖子上犯了任何错误,这是我的第一个错误。
接收类:
public class Receta {
private String name;
private String autor;
private String desc;
private String origin;
private String tiempoPrep;
private String filepath;
public Receta(String user, String nombre, String
descripcion, String origen, String tiempo
, String filepath) {
this.autor = user;
this.name = nombre;
this.desc = descripcion;
this.origin = origen;
this.tiempoPrep = tiempo;
this.filepath = filepath;
}
public Receta(String user, String nombre, String
descripcion, String origen, String tiempo) {
this.autor = user;
this.name = nombre;
this.desc = descripcion;
this.origin = origen;
this.tiempoPrep = tiempo;
}
public Receta(){}
public String getNombre() {
return name;
}
public void setNombre(String nombre) {
this.name = nombre;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getOrigin() {
return origin;
}
public void setOrigin(String origen) {
this.origin = origen;
}
public String getTiempoPrep() {
return tiempoPrep;
}
public void setTiempoPrep(String tiempoPrep) {
this.tiempoPrep = tiempoPrep;
}
public String getFilepath() {
return filepath;
}
public void setFilepath(String filepath) {
this.filepath = filepath;
}
}
答案 0 :(得分:0)
您的模型类receta
的属性名称(用descripcion代替desc,用origen代替origin)应该与Firebase数据库中的键名相同。
您的数据类应该看起来像这样,因为引用相同变量的不同名称令人困惑。
public class Receta {
private String name;
private String autor;
private String descripcion;
private String origen;
private String tiempoPrep;
private String filepath;
public Receta(String name, String autor, String descripcion, String origen,
String tiempoPrep, String filepath) {
this.name = name;
this.autor = autor;
this.descripcion = descripcion;
this.origen = origen;
this.tiempoPrep = tiempoPrep;
this.filepath = filepath;
}
public Receta(String name, String autor, String descripcion, String origen,
String tiempoPrep) {
this.name = name;
this.autor = autor;
this.descripcion = descripcion;
this.origen = origen;
this.tiempoPrep = tiempoPrep;
}
public Receta() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getOrigen() {
return origen;
}
public void setOrigen(String origen) {
this.origen = origen;
}
public String getTiempoPrep() {
return tiempoPrep;
}
public void setTiempoPrep(String tiempoPrep) {
this.tiempoPrep = tiempoPrep;
}
public String getFilepath() {
return filepath;
}
public void setFilepath(String filepath) {
this.filepath = filepath;
}
}