これはいくつかの形式で以前に尋ねられたことを知っているので、私は謝罪しますが、私が見つけたすべての回答は、オブジェクトのリストではなく、単一のオブジェクトであると思われます。FirebaseデータをJavaオブジェクトに変換するにはどうすればよいですか?
私はAndroid Studioを使用しており、データベースのFirebaseに接続しています。次のように私は、私自身のChartColourオブジェクトが私のアプリで定義されています。データベースで
public class ChartColour {
private String key, name, description;
private int alpha, red, green, blue;
public ChartColour(String thisKey) {
this.key = thisKey;
}
public ChartColour(String thisKey, String thisName, int thisAlpha, int thisRed, int thisGreen, int thisBlue) {
this.key = thisKey;
this.alpha = thisAlpha;
this.red = thisRed;
this.green = thisGreen;
this.blue = thisBlue;
this.description = null;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("key", key);
result.put("name", name);
result.put("description", description);
result.put("a", alpha);
result.put("r", red);
result.put("g", green);
result.put("b", blue);
return result;
}
}
、サンプルレコードは、このようなものです:
colours
-- 5ha8hkwe253 (unique key for this chart)
-- a:0
-- b:255
-- description: "Base colour"
-- g:255
-- name: "Base"
-- r: 255
だから、私はこれを取得して設定するのですかChartColour、キーを知っていれば?これまでのところ、私は私のColourChart.javaクラスで定義され、この機能を持っている:
private void retrieveColourFromDatabase() {
DatabaseReference mColourReference = FirebaseDatabase.getInstance().getReference()
.child("colours").child(this.key);
mColourReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
ChartColour colour = userSnapshot.getValue(ChartColour.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
しかし、それは右、「色」変数にそれをすべて設定しますか?しかし、私はそれが "this"を介してアクセス可能であることを望んでいます。しかし、もし私がそうするなら、forループの中で
this = userSnapshot.getValue(ChartColour.class);
は、 'this'をValueEventListenerとして受け取り、ChartColourを取りません。私はこれが本当にシンプルだろうと知っていますが、私はそれだけで頭を上げることはできません。私は自分自身を混乱させてしまったように丸々と回ってきたと思います!私はJavaに比較的新しく、これは役に立たない。
ありがとうございました!
ありがとうございました!私はもともとデフォルトのコンストラクタを持っていましたが、何とかすべてを落とそうとしている間に、それを削除しました! getterなども追加します。あなたの助けをもう一度ありがとう。 – Sharon