Firebaseプロジェクトで、私は奇妙な事が起きました。FirebaseのスナップショットgetValueがintを突然解析できませんでした
は突然
AddressChatMessage chatMessage = snapshot.getValue(AddressChatMessage.class);
は1つのint型を除くAddressChatMessage
ためのOKをすべて解析されました。私はこれをしようとするまで は、私が問題と今日のAndroidスタジオせずに数週間のためにこのコードを使用して注意が2.3.2に更新し、いくつかのコアと多分その引き金この奇妙なイベントを公表
public int type;
にフィールドを設定し、私に2時間かかりました。
AddressChatMessage.java
public 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();
}
}