このFirebase Realtime Databaseがあります
そして、私がそれを表示したいとき、それはエラーで行きます:
com.google.firebase.database.DatabaseException:タイプjava.util.ArrayListの値を文字列に変換できませんでした
表示"players"
は、データベースに子がなくても正常に機能します。MyEvents.java
この行のクラスにエラーがありevent = ds.getValue(Event.class);
ます。これEvent.java
がゲッター、セッター、コンストラクターを持つ私のクラスです
package com.example.vilniausfutbolas;
import com.google.firebase.database.IgnoreExtraProperties;
@IgnoreExtraProperties
public class Event {
public String team_name;
public String date;
public String time;
public String location;
public Integer quantity;
public Double price;
public String additional;
public String players;
public String refused_players;
public String event_id;
public Event() {
// Default constructor required for calls to DataSnapshot.getValue(Event.class)
}
public Event(String userId, String team_name, String date, String time, String location, Integer quantity, Double price, String additional, String players, String refused_players, String event_id) {
this.team_name = team_name;
this.date = date;
this.time = time;
this.location = location;
this.quantity = quantity;
this.price = price;
this.additional = additional;
this.players = players;
this.refused_players = refused_players;
this.event_id = event_id;
}
public String getTeam_name() {
return team_name;
}
public void setTeam_name(String team_name) {
this.team_name = team_name;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public Integer getQuantity() {
return quantity;
}
public void setQuantity(Integer quantity) {
this.quantity = quantity;
}
public Double getPrice() {
return price;
}
public void setPrice(Double price) {
this.price = price;
}
public String getAdditional() {
return additional;
}
public void setAdditional(String additional) {
this.additional = additional;
}
public String getPlayers() {
return players;
}
public void setPlayers(String players) {
this.players = players;
}
public String getRefused_players() {
return refused_players;
}
public void setRefused_players(String refused_players) {
this.refused_players = refused_players; }
public String getEvent_id() {
return event_id;
}
public void setEvent_id(String event_id) {
this.event_id = event_id;
}
}
だから問題はplayers
ゲッターとセッターをエラーのために正しく設定することだと思います。または、クラスの1つのコンストラクターをplayers
使用event
して1つのオブジェクトに表示できる子を処理する別の方法がありEvent.java
ますか?
たぶん私はplayers
子供のための別のクラスを作成する必要がありますか?
データベースでは、players
フィールドはでlist
はなくString
です。したがって、次のようにモデルクラスでplayers
リストとして宣言する必要がありますEvent.java
。public List<String> players;
次に、コンストラクタで同じものを置き換えます。次に、ゲッターとセッターを次のコードに置き換えます。
public List<String> getPlayers() {
return players;
}
public void setPlayers(List<String> players) {
this.players = players;
}
または、Android Studioにコンストラクター、ゲッター、セッターを自動生成させることをお勧めします。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加