好的,因此标题可能有点含糊或难以理解,因此我将尝试使其尽可能详细。我正在编写一个有用户的android应用程序。
firebase中的json看起来像这样:
user{
$auid{
"Name": "blah",
"email": "blah",
"image": "blah",
"conversationKeys"{
"randKey":"key",
"randKey":"key",
"randKey":"key",
}
}
}
因此,我遇到的问题是嵌套集合(对话键),它们是整个不同集合中对话的键。我不知道如何将它们存储在我拥有的用户java类中。我曾尝试将类中的值设置为arrayList,希望它能正常工作。
我用它来检索数据:
userRef = new Firebase((new FireBaseAPI()).getUsersURL()+"/"+sharedPrefs.getAuthuid());
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
user = dataSnapshot.getValue(UserData.class);
}
我希望将其全部存储在一个类中,其中会话密钥存储在arrayList或array或其他任何类中。
任何帮助将不胜感激。如果需要更多的说明,请不要犹豫。谢谢您的帮助。
此外,用户数据类是:
public class UserData {
public String displayName;
public String profileImageURL;
public String coverImageURL;
public String lastLogin;
public String provider;
public String bio;
public ArrayList<String> conversationKeys;
public ArrayList<String> getConversationKeys() {
return conversationKeys;
}
public void setConversationKeys(ArrayList<String> conversationKeys) {
this.conversationKeys = conversationKeys;
}
public UserData(String name,
String profilePic,
String coverPic) {
this.displayName = name;
this.profileImageURL = profilePic;
this.coverImageURL = coverPic;
}
public UserData() {
}
public String getBio() {
return bio;
}
public void setBio(String bio) {
this.bio = bio;
}
public String getProvider() {
return provider;
}
public void setProvider(String provider) {
this.provider = provider;
}
public String getLastLogin() {
return lastLogin;
}
public void setLastLogin(String lastLogin) {
this.lastLogin = lastLogin;
}
public String getProfileImageURL() {
return profileImageURL;
}
public void setProfileImageURL(String profileImageURL) {
this.profileImageURL = profileImageURL;
}
public String getCoverImageURL() {
return coverImageURL;
}
public void setCoverImageURL(String coverImageURL) {
this.coverImageURL = coverImageURL;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
}
对话键存储为键/值对,而不是数组。因此,您需要将它们检索到Map
(而不是要尝试获取的数组/列表)中。
对于conversationKeys
JSON中的属性,请将其添加到您的类中:
public class UserData {
...
private Map<String,String> conversationKeys;
public Map<String,String> getConversationKeys() {
return conversationKeys;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句