काम नहीं करता है कहानीFirebase @PropertyName
मैं अपने अनुप्रयोग में Firebase रीयलटाइम डाटाबेस का उपयोग कर रहा हूँ। मेरे पास ऐसा कुछ मॉडल है।
class Item {
int mItemName;
// Simplified for brevity
}
अब, यह मेरी वास्तविक समय डेटाबेस में itemName
के रूप में क्षेत्र संग्रहीत करता है। लेकिन मुझे लगता है कि नामकरण परंपरा का उपयोग नहीं करना चाहते हैं। मैं नामकरण पैटर्न इस होना करने के लिए, item_name
चाहते हैं।
मैं क्या किया
मैं इस तरह क्षेत्र के ऊपर @PropertyName इस्तेमाल किया ("ITEM_NAME"),
class Item {
@PropertyName("item_name")
int mItemName;
// Simplified for brevity
}
समस्या
Firebase सिर्फ उपेक्षा करने लगता है एनोटेशन पूरी तरह से। कोई रास्ता नहीं मैं क्रमबद्धता और अक्रमांकन के लिए संपत्ति नाम बदलने के लिए कर रहा हूँ नहीं है।
किसी भी मदद की अत्यधिक सराहना की जाएगी।
संपादित
यहाँ चिंता में पूरा मॉडल वर्ग है,
public class FileModel {
@PropertyName("file_id")
String mFileId;
@PropertyName("file_name")
String mOriginalFileName;
@PropertyName("file_path")
String mFilePath;
@PropertyName("file_type")
String mFileType;
@PropertyName("last_modified")
Long mFileLastModified;
@PropertyName("file_size")
String mFileSize;
@Exclude
private boolean mIsSelected;
/**
* Must have empty constructor for JSON deserialization by Firebase
*/
public FileModel() {
}
public FileModel(String fileId, String originalFileName,
String filePath, String fileType, Long fileLastModified, String fileSize) {
this.mFileId = fileId;
this.mOriginalFileName = originalFileName;
this.mFilePath = filePath;
this.mFileType = fileType;
this.mFileLastModified = fileLastModified;
this.mFileSize = fileSize;
}
public String getFileId() {
return mFileId;
}
public void setFileId(String fileId) {
this.mFileId = fileId;
}
public String getOriginalFileName() {
return mOriginalFileName;
}
public void setOriginalFileName(String originalFileName) {
this.mOriginalFileName = originalFileName;
}
public String getFilePath() {
return mFilePath;
}
public void setFilePath(String filePath) {
this.mFilePath = filePath;
}
public String getFileType() {
return mFileType;
}
public void setFileType(String fileType) {
this.mFileType = fileType;
}
public Long getFileLastModified() {
return mFileLastModified;
}
public void setFileLastModified(Long fileLastModified) {
this.mFileLastModified = fileLastModified;
}
public String getFileSize() {
return mFileSize;
}
public void setFileSize(String fileSize) {
this.mFileSize = fileSize;
}
public boolean getIsSelected() {
return mIsSelected;
}
public void setIsSelected(boolean isSelected) {
this.mIsSelected = isSelected;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
FileModel model = (FileModel) o;
if (mIsSelected != model.mIsSelected) return false;
if (mFileId != null ? !mFileId.equals(model.mFileId) : model.mFileId != null) return false;
if (mOriginalFileName != null ? !mOriginalFileName.equals(model.mOriginalFileName) : model.mOriginalFileName != null)
return false;
if (mFilePath != null ? !mFilePath.equals(model.mFilePath) : model.mFilePath != null)
return false;
if (mFileType != null ? !mFileType.equals(model.mFileType) : model.mFileType != null)
return false;
if (mFileLastModified != null ? !mFileLastModified.equals(model.mFileLastModified) : model.mFileLastModified != null)
return false;
return mFileSize != null ? mFileSize.equals(model.mFileSize) : model.mFileSize == null;
}
@Override
public int hashCode() {
int result = mFileId != null ? mFileId.hashCode() : 0;
result = 31 * result + (mOriginalFileName != null ? mOriginalFileName.hashCode() : 0);
result = 31 * result + (mFilePath != null ? mFilePath.hashCode() : 0);
result = 31 * result + (mFileType != null ? mFileType.hashCode() : 0);
result = 31 * result + (mFileLastModified != null ? mFileLastModified.hashCode() : 0);
result = 31 * result + (mFileSize != null ? mFileSize.hashCode() : 0);
result = 31 * result + (mIsSelected ? 1 : 0);
return result;
}
@Override
public String toString() {
return "FileModel{" +
"mFileId='" + mFileId + '\'' +
", mOriginalFileName='" + mOriginalFileName + '\'' +
", mFilePath='" + mFilePath + '\'' +
", mFileType='" + mFileType + '\'' +
", mFileLastModified=" + mFileLastModified +
", mFileSize='" + mFileSize + '\'' +
", mIsSelected=" + mIsSelected +
'}';
}
}
फ़ायरबेस डाटाबेस का कौन सा संस्करण क्या आप अपनी build.gradle फ़ाइल में शामिल हैं? –
यदि आपकी कक्षा 'सार्वजनिक' है? क्या क्षेत्र सार्वजनिक है? उन दोनों के बिना, यह जेएसओएन को क्रमबद्ध नहीं किया जाएगा। –
मैं संस्करण 9.2.1 का उपयोग कर रहा हूं, नवीनतम। कक्षा और क्षेत्र दोनों सार्वजनिक हैं, और वे भी क्रमबद्ध हैं, बस संपत्ति नाम बदलने के लिए एनोटेशन का सम्मान नहीं किया जाता है। –