2016-07-31 37 views
8

ÖYKÜSÜFirebase @PropertyName benim app Firebase Gerçek Zamanlı Veritabanı kullanıyorum

çalışmaz. Böyle bir modelim var.

class Item { 
    int mItemName; 
    // Simplified for brevity 
} 

Şimdi, bu alan gerçek zamanlı veritabanımda itemName olarak depolanıyor. Ancak bu adlandırma kuralını kullanmak istemiyorum. Adlandırma deseninin item_name olmasını istiyorum. Ben ("item_name") böyle alanının üzerindeki @PropertyName kullanılan

YAPTIK

,

class Item { @PropertyName("item_name") int mItemName; // Simplified for brevity } 

SORUN

Firebase sadece görmezden görünüyor ek açıklama tamamıyla. Seri hale getirme ve serileştirme için özellik isimlerini değiştiremem mümkün değil.

Herhangi bir yardım çok takdir edilecektir.

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 + 
        '}'; 
     } 
    } 
+0

Firebase Databa hangi sürümde? se build.gradle dosyanıza dahil misiniz? –

+0

Sınıfınız "public" ise mi? Alan halk mı? Bu ikisi olmadan JSON'a serileştirilmeyecek. –

+0

En son sürüm 9.2.1 sürümünü kullanıyorum. Sınıf ve alan her ikisi de kamusaldır ve bunlar da serileştirilmiştir, sadece mülkiyet ismini değiştirmek için ek açıklama yapılmaz. –

cevap

İlgili konular