2017-10-11 33 views
0

我想讀取數據,建立一個對象,我可以顯示我的項目。我如何從Firebase將數據恢復到android?

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缺少無參數的構造函數

+0

看起來你已經有基礎恢復/檢索數據。你有哪些困難? –

+0

恢復信息並建立對象Curp,但第二個代碼不起作用,代碼失敗 – Montero

+0

當應用程序崩潰時,logcat中應該有一個錯誤和堆棧跟蹤。請編輯您的問題以包含該信息。 –

回答

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 
       } 
      }); 
+0

死在Curp值= dataSnapshot.get值(Curp.class)com.example.montero.softtimcurpmontero.MainActivity $ 1.onChildAdded(MainActivity.java:48) – Montero

+0

當前缺少一個沒有參數的構造函數 – Montero

+0

如果我的答案幫助了你,請注意它。我回答你的第一個問題(更新之前) –

1

,我需要在MainActivity類Curp建立一個空condtructor的Curp價值的唯一的事

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

}