Как получить все данные из datasnapshot AndroidStudio? - PullRequest
0 голосов
/ 02 января 2019

Я пытаюсь получить все данные о Retata из моей базы данных Firebase в режиме реального времени (ссылка на мое изображение Firebase Receas) Изображение Когда я получаю данные из него с помощью кода ниже, я получаю вседанные, но описание и происхождение, которые установлены в нуль

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 имеет описание и происхождение правильно, но я не понимаю, почему они устанавливаются в ноль при создании рецепта. DS Receta Любая идея?Извините, если я допустил ошибку в сообщении, это мой первый.

Класс 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;
}
}

1 Ответ

0 голосов
/ 02 января 2019

Класс вашей модели receta Имя свойства (описание вместо 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;
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...