我如何将数据从firebase恢复到android?

时间:2017-10-11 03:05:24

标签: android firebase firebase-realtime-database

我想读取数据,构建一个可以为我的项目显示的对象。

database

public class Curp{

  public String curpGen, Nombre, ApPat, apMat, sexo, estado, fecha;

  public Curp(String  curpGen,String Nombre,String ApPat,String apMat,String fecha,String sexo,String estado){
    this.curpGen=curpGen;
    this.Nombre=Nombre;
    this.ApPat=ApPat;
    this.apMat=apMat;
    this.fecha=fecha;
    this.sexo=sexo;
    this.estado=estado;
  }

}

在这部分中,我有方法来读取数据并保存以创建对象curp。

我想知道如何使用数据构建对象Curp

 database.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            String curpGen=dataSnapshot.getValue(Curp.class).curpGen.toString();
            String nombre=dataSnapshot.getValue(Curp.class).Nombre.toString();
            String ApPat=dataSnapshot.getValue(Curp.class).ApPat.toString();
            String ApMat=dataSnapshot.getValue(Curp.class).apMat.toString();
            String Fecha=dataSnapshot.getValue(Curp.class).fecha.toString();
            String sexo=dataSnapshot.getValue(Curp.class).sexo.toString();
            String edo=dataSnapshot.getValue(Curp.class).estado.toString();

            Curp value=new Curp(curpGen,nombre,ApPat,ApMat,Fecha,sexo,edo);
            lista.add(value);
            cupadapter=new CurpAdapter(lista);
            reciclador.setAdapter(cupadapter);
        }
 }
  

22:33:01.533 13269-13269 / com.example.montero.softtimcurpmontero   E / RecyclerView:没有连接适配器;跳过布局10-10

     

22:33:01.763 13269-13269 / com.example.montero.softtimcurpmontero   E / RecyclerView:没有连接适配器;跳过布局10-10

     

22:33:01.953 13269-13269 / com.example.montero.softtimcurpmontero   E / AndroidRuntime:致命异常:主要   处理:com.example.montero.softtimcurpmontero,PID:13269   com.google.firebase.database.DatabaseException:类com.example.montero.softtimcurpmontero.Curp缺少一个没有参数的构造函数

2 个答案:

答案 0 :(得分:1)

您不需要使用该构造函数。如果变量名称与firebase节点值相同,则可以为变量赋值。 试试这个:

database.limitToLast(1).addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                    Curp value=dataSnapshot.getValue(Curp.class);
                    //Use this object
                }
            });

答案 1 :(得分:1)

我唯一需要的是在类Curp中为MainActivity中的Curp值构建一个空的condtructor

database.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Curp value=new Curp();
            value=dataSnapshot.getValue(Curp.class);
            lista.add(value);
            cupadapter=new CurpAdapter(lista);
            reciclador.setAdapter(cupadapter);
        }

}