如何在下圖中更改我的孩子的節點名稱? questions_stats
是List<Integer>
,我知道我得到整數作爲節點Id,因爲這是一個列表。我使用0到1000之間的數字隨機創建每個孩子。我將此ID設置爲對象的一部分,並找到它我循環顯示列表。我想要的是將「0671」設置爲創建對象的關鍵點。Firebase數據庫更改節點ID
我應該如何定義我的對象以便通過我定義爲字符串的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)
來設置它們。
但我的目的,我需要檢索「用戶」作爲一個整體的數據,然後遍歷whithin questions_stats
像是一個列表。
我應該如何定義我的UserProfile類以實現我想要的功能?
有人可以給我一個提示嗎?
你想要'0000'和'0001'裏面的數據嗎? –
@Peter Haddad questions_stats是對象列表,因爲是列表0和1是索引。我想要的是能夠設置一個像「0001」或「8760」這樣的關鍵字來指定一個特定的對象,並以maps的形式訪問questions_stats而不是列表。我可以通過使用四個循環來訪問列表中的特定對象,但使用Map會使它更有效率,我相信。不知道如何實現地圖。 – Racu
'Firebase'數據庫是一個NoSQL數據庫,它被構造成密鑰和veales對,這意味着數據庫中的每個節點都是'Map'。看到你的數據庫截圖,'question_stats'也是一個'Map',它具有'question_stats'作爲一個關鍵字和數據作爲一個值。 '0'節點也是一個映射,其中'0'作爲關鍵字,並將其下的數據作爲值。等等。不要混淆你在你的模型類中有一個列表。在數據庫內部,每個節點都是一個「Map」。 –