【发布时间】:2020-02-21 16:06:04
【问题描述】:
我的 android 应用程序在启动时崩溃,因为我在 firebase 中的后端发生了一个小错误。我的 firestore 数据库中的一个文档有一个字段,其中需要一个 Image 对象(id 和 url),但由于某种原因,它在数据库中存储为 long。
我收到此错误:
java.lang.RuntimeException: Could not deserialize object. Can't convert object of type java.lang.Long to type com..data.entity.gps.tracker.ImageEntity
我的 ImageEntity 类:
public class ImageEntity {
private int id;
private String image_id;
public String getImage_id() {
return image_id;
}
public void setImage_id(String image_id) {
this.image_id = image_id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
我不能只排除封面 ImageEntity 对象,它是我的应用程序不可或缺的一部分,如何添加验证步骤来检查封面对象是否为有效对象而不是长对象?
这是崩溃发生的地方:
public List<Model> mapList(QuerySnapshot querySnapshot) {
List<Model> list = new ArrayList<>();
for (QueryDocumentSnapshot queryDocumentSnapshot : querySnapshot) {
Model model = map(queryDocumentSnapshot);
long id = ((Release) model).getId();
if (!addedReleasesIDs.contains(id)) {
list.add(model);
addedReleasesIDs.add(id);
}
}
return list;
}
public Model map(QueryDocumentSnapshot queryDocumentSnapshot) {
// Auto serialization
Entity entity = queryDocumentSnapshot.toObject(getEntityClass()); // CRASH HERE
return map(entity);
}
【问题讨论】:
标签: android firebase google-cloud-firestore