2017-03-03 8 views
0

Firebaseからオブジェクトにデータを取得しようとしていますが、値としてnullが返されています。Firebase getValue(Class.class)オブジェクト

次のように私のFirebaseデータベースは次のとおりです。次のように

- Reports 
    - RandomID 
     - Name: Bob 
     - Value: x 

など

マイレポートクラスがある:

public class Report { 
    private String name; 
    private String value; 


    public Report() { 
    } 

    public Report(String name, String value) { 
     this.name= name; 
     this.value= value; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getValue() { 
     return value; 
    } 

    public void setName(String name) { 
     this.name= name; 
    } 

    public void setValue(String value) { 
     this.value= value; 
    } 

私は私がやるonChildAdded法上のデータベースaddChildEventListenerを持っています以下:

mDatabase = FirebaseDatabase.getInstance().getReference().child("Reports"); 
mDatabase.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
        Report currentReport = dataSnapshot.child(s).getValue(Report.class); 
        Log.d("CurrentReport", "Name: "currentReport.getName() + " Value: " + currentReport.getValue())); 
        Log.d("MyReports", dataSnapshot.getValue().toString()); 

currentReport.getName()getValue()がnull が、dataSnapshot.getValue().toString()を戻ってきていることは返却されます。 {Name=Bob, Val= x}

がどのように私は報告書でこれを保存することができますレポートのx =新しい報告書(...)

感謝をしていなくて

+0

ChildEventListenerを表示できますか?私はあなたが子供を取り除かなければならないかもしれないと思います – Linxy

+0

あなたが私たちにあなたのReportクラスを見せてくれれば助けになるでしょう。 –

答えて

0

{Name=Bob, Val= x}あなたのオブジェクトと一致しません。

ケースの問題。

private String name; 
private String value; 

オプション

1)を更新するJavaオブジェクト:private String Name, Val;

2)name及びvalueキーである持ってFirebaseを更新します。

0

これを試して、あなたのオブジェクトをカプセル化して返します。

mDatabase.addListenerForSingleValueEvent(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
    if (dataSnapshot.getValue() != null) 
     { 
      Report = dataSnapshot.getValue(Report.class); 
     } 
      } 
      @Override 
      public void onCancelled(DatabaseError databaseError) { 
//--- 
      } 
     }); 
関連する問題