DataSnapShot
オブジェクトから取得した後にデータを印刷したいとします。それを印刷するために、私はこのようにしています。DatasnapshotオブジェクトからFirebase Androidのキーで値を取得
private void getUpdates(DataSnapshot DS){
for(DataSnapshot mydata:DS.getChildren()){
Log.i("", String.valueOf(data));
}
}
firebase
インスタンスは次のようになります。
FirebaseDatabase database = FirebaseDatabase.getInstance();
myRef = database.getReference("myDB");
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
getUpdates(dataSnapshot);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
getUpdates(dataSnapshot);
}
印刷など:私だけdesc
の値を取得したい
DataSnapshot { key = areaName, value = myName1}
DataSnapshot { key = decs, value = desc1}
DataSnapshot { key = areaName, value = myName2 }
DataSnapshot { key = desc, value = desc2 }
しかし。
マイ・モデル・クラスは次のとおりです。私は、このようにしてみました
public class Singleton {
private String areaName;
private String desc;
public Singleton(String areaName, String desc) {
this.areaName = areaName;
this.desc = desc;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
。 java.langで:
String decsrip= (String) mydata.child("desc").getValue();
Log.i("", decsrip);
しかし、それは
null
を印刷している。そして、私は
Map<String, Object> map = (Map<String, Object>) mydata.getValue();
String descrip = (String) map.get("desc");
Log.i("",descrip);
として
とjava.lang.ClassCastExceptionを言ってクラッシュしたアプリケーションを試してみました。文字列はjava.util.Mapにキャストできません
ここで、データは? desc
の値のみを取得できますか?あなたがする必要がある
まず、DS.getChildren()の下にあるそのデータに使用したModelクラスを確認する必要があります。あなたが読んでいるレコードのDatabaseReferenceとModelクラスをどのように作成しているのか、問題のコードをもっと入れてください。 – MKJParekh
@MKJParekh質問が更新されました。親切に見てください – user6750923