Firebase Realtime Databaseでキーと値のタイプであるゲッターとセッターをどのように設定すればよいですか?

マンタス・キルディシス:

このFirebase Realtime Databaseがあります

私の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子供のための別のクラスを作成する必要がありますか?

Jayesh Babu:

データベースでは、playersフィールドはでlistはなくStringです。したがって、次のようにモデルクラスでplayersリストとして宣言する必要がありますEvent.javapublic List<String> players;
次に、コンストラクタで同じものを置き換えます。次に、ゲッターとセッターを次のコードに置き換えます。

public List<String> getPlayers() {
   return players;
}

public void setPlayers(List<String> players) {
    this.players = players;
}

または、Android Studioにコンストラクター、ゲッター、セッターを自動生成させることをお勧めします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ