2017-05-13 8 views
0

Firebaseプロジェクトで、私は奇妙な事が起きました。FirebaseのスナップショットgetValueがintを突然解析できませんでした

は突然

AddressChatMessage chatMessage = snapshot.getValue(AddressChatMessage.class); 

は1つのint型を除くAddressChatMessageためのOKをすべて解析されました。私はこれをしようとするまで は、私が問題と今日のAndroidスタジオせずに数週間のためにこのコードを使用して注意が2.3.2に更新し、いくつかのコアと多分その引き金この奇妙なイベントを公表

public int type; 

にフィールドを設定し、私に2時間かかりました。

AddressChatMessage.javapublic int typeがプライベートにできないという点を除いて奇妙なことはありません。ゼロであれば、それも奇妙です。通常、pojoの解析が失敗した場合、Firebaseはlogcatの警告を出します。リントを使用してコードをクリーニングするとき、私はint´s

@IgnoreExtraProperties 
public class AddressChatMessage { 

    // [START Firebase keys inside AddressChatMessage ] 

    @Exclude 
    public static final String TYPE = "type"; 

    @Exclude 
    public static final String SENDER_ID = "senderId"; 

    @Exclude 
    public static final String MESSAGE = "message"; 

    @Exclude 
    public static final String FILENAME = "fileName"; 

    @Exclude 
    public static final String DOWNLOAD_URI = "downloadUri"; 

    @Exclude 
    public static final String TIME = "time"; 

    // [STOP Firebase keys inside AddressChatMessage ] 

    public int type; 

    private String senderId; 

    private String message; 

    private String fileName; 

    private String downloadUri; 

    @Exclude 
    private long time; 

    @Exclude 
    private String messageId; 

    public AddressChatMessage() { 
    } 

    public AddressChatMessage(int type, String senderUid) { 
     this.senderId = senderUid; 
     this.type = type; 

    } 

    public AddressChatMessage(int type, String senderUid, String message) { 
     this.type = type; 
     this.senderId = senderUid; 
     this.message = message; 
    } 

    private int getType() { 
     return type; 
    } 

    public void setType(int type) { 
     this.type = type; 
    } 

    public String getSenderId() { 
     return senderId; 
    } 

    public void setSenderId(String senderId) { 
     this.senderId = senderId; 
    } 

    public String getMessage() { 
     return message; 
    } 

    public void setMessage(String message) { 
     this.message = message; 
    } 

    public String getFileName() { 
     return fileName; 
    } 

    public void setFileName(String fileName) { 
     this.fileName = fileName; 
    } 

    public String getDownloadUri() { 
     return downloadUri; 
    } 

    public void setDownloadUri(String downloadUri) { 
     this.downloadUri = downloadUri; 
    } 

    public long getTime() { 
     return time; 
    } 

    public String getMessageId() { 
     return messageId; 
    } 

    public void setMessageId(String messageId) { 
     this.messageId = messageId; 
    } 

    @Exclude 
    public Map<String, Object> toMap() { 
     HashMap<String, Object> result = new HashMap<>(); 
     result.put(TYPE, type); 
     result.put(SENDER_ID, senderId); 
     result.put(MESSAGE, message); 
     result.put(FILENAME, fileName); 
     result.put(DOWNLOAD_URI, downloadUri); 
     result.put(TIME, time); 
     return result; 
    } 
    @Exclude 
    public boolean isTypeNormal() { 
     return getType() == ChatAdapter.MessageType.NORMAL.ordinal(); 
    } 

    @Exclude 
    public boolean isTypeImage() { 
     return getType() == ChatAdapter.MessageType.IMAGE.ordinal(); 
    } 
} 

答えて

0

をたっぷり使って、このような他の10のMODELLのクラスを持っています。 Lintは「これは公衆の代わりに私的にすることができる」のような変更を提案しました。私は誤って私的アクセスにgetType()を設定しました。

関連する問題