下の画像で子供のノードの名前を変更するにはどうすればよいですか? questions_stats
はList<Integer>
です。これはリストなので、ノードIDとして整数を取得することがわかります。私は0から1000までの数字でランダムに子をそれぞれ作成します。私はこのIDをオブジェクトの一部として設定し、リストをループして探します。私が望むのは、私がそれを作成する瞬間にオブジェクトのキーとして "0671"を設定することです。Firebaseデータベースの変更ノードID
Stringを定義するIDを持つ各子にアクセスするには、オブジェクトをどのように定義する必要がありますか。
questions_stats
のそれぞれが対象です。
これは私のUserProfileクラスの定義です。
public class UserProfile implements Parcelable {
private List<Integer> questions_list;
private List<QuestionsStats> questions_stats;
private String country_name, share_code, user_name;
private int token_count;
private Boolean is_guest;
public UserProfile() {
}
public UserProfile(List<Integer> questions_list, List<QuestionsStats> questions_stats, String country_name, String share_code, String user_name, int token_count, Boolean is_guest) {
this.questions_list = questions_list;
this.questions_stats = questions_stats;
this.country_name = country_name;
this.share_code = share_code;
this.user_name = user_name;
this.token_count = token_count;
this.is_guest = is_guest;
}
}
個別にchild("0159").setValue(QuestionStats)
を使用して設定できます。
しかし、私の目的のために、私は「ユーザー」全体としてのデータを取得し、それが一覧であるようquestions_stats
whithin反復処理する必要があります。
私が望むことを達成するために、自分のUserProfileクラスをどのように定義すればよいですか?
誰でも私にヒントを与えることができますか?
「0000」と「0001」の内部のデータも欲しいですか? –
@Peter Haddad questions_statsは、リスト0と1がインデックスなので、オブジェクトのリストです。私が望むのは、 "0001"や "8760"のようなキーを特定のオブジェクトに設定し、リストの代わりにmapsとしてquestion_statsにアクセスできるようにすることです。私は4つのループを使ってリスト内の特定のオブジェクトにアクセスすることができますが、マップを使用すると効率が向上します。マップの実装方法がわからない – Racu
'Firebase'データベースはNoSQLデータベースで、キーとベールのペアとして構成されています。つまり、データベース内のすべてのノードが' Map'です。あなたのデータベースのスクリーンショットを見ると、 'question_stats'は' Map'でもあり、 'question_stats'をキーとし、その下のデータを値として持っています。 '0'ノードはキーである' 0'とその値の下のデータであるマップです。等々。あなたのモデルクラスにリストがあることを混同しないでください。データベースの中には、すべてのノードが 'Map'です。 –