現在、私はクラスA、B、Cのような少数の異なるクラスに対して、RowTypeというインターフェースを実装しています。Firebaseを使ってそれぞれのオブジェクトを取得する方法を教えてください。Firebaseとのインターフェイスの使用
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
RowType rowType = snapshot.getValue(RowType.class);
Log.d("awdjk", "qwjel");
}
IはFirebaseに挿入されたすべてのオブジェクトは、私はスナップショット値を取得する行型を使用することができることを、いずれかのクラスA、B、またはCであるので、と仮定するであろう。しかし、「クラスRowTypeでシリアル化するプロパティが見つかりません」というエラーが表示されます。
UPDATE
インタフェース
public interface RowType {
int EXERCISE_ROW = 0;
int REST_ROW = 1;
int SUPERSET_ROW = 2;
int PYRAMIDSET_ROW = 3;
int BUTTON_ROW = 4;
}
エクササイズクラス
public class ExerciseModel implements RowType {
public String exercise, sets, reps, view, minutes, seconds, time, weight, childCount;
private EditText weightEditText, setsEditText, repsEditText;
private AutoCompleteTextView exerciseEditText;
private ImageView dragHandle;
private ExerciseRowTextWatcher exerciseRowTextWatcher;
public ExerciseRowTextWatcher getExerciseRowTextWatcher(){
return exerciseRowTextWatcher;
}
public void setExerciseRowTextWatcher(ExerciseRowTextWatcher exerciseRowTextWatcher){
this.exerciseRowTextWatcher = exerciseRowTextWatcher;
}
public ImageView getDragHandle(){
return dragHandle;
}
public void setDragHandle(ImageView dragHandle){
this.dragHandle = dragHandle;
}
public AutoCompleteTextView getExerciseEditText(){
return exerciseEditText;
}
public void setExerciseEditText(AutoCompleteTextView exerciseEditText){
this.exerciseEditText = exerciseEditText;
}
public EditText getWeightEditText(){
return weightEditText;
}
public void setWeightEditText(EditText weightEditText){
this.weightEditText = weightEditText;
}
public EditText getSetsEditText(){
return setsEditText;
}
public void setSetsEditText(EditText setsEditText){
this.setsEditText = setsEditText;
}
public EditText getRepsEditText(){
return repsEditText;
}
public void setRepsEditText(EditText repsEditText){
this.repsEditText = repsEditText;
}
public String getChildCount(){
return childCount;
}
public void setChildCount(String childCount){
this.childCount = childCount;
}
public String getExercise(){
return exercise;
}
public String getWeight(){
return weight;
}
public String getSets(){
return sets;
}
public String getReps(){
return reps;
}
public String getView(){
return view;
}
public String getMinutes(){
return minutes;
}
public String getSeconds(){
return seconds;
}
public String getTime(){ return time;}
public void setExercise(String exercise){
this.exercise = exercise;
}
public void setTime(String time){ this.time = time; }
public void setWeight(String weight){
this.weight = weight;
}
public void setMinutes(String minutes){
this.minutes = minutes;
}
public void setSeconds(String seconds){
this.seconds = seconds;
}
public void setSets(String sets){
this.sets = sets;
}
public void setView(String view){
this.view = view;
}
public void setReps(String reps){
this.reps = reps;
}
}
私はインターフェイスに実装されている他のクラスを持っていますが、この短いを維持するために、私は追加されましたエクササイズクラス。他のクラスは比較的類似している。
このスレッドをチェックするhttps://stackoverflow.com/questions/37743661/firebase-no-properties-to-serialize-found-on-class –
クラス/インターフェイスコードを追加してください。 –
@AlexMamo私はコード –