火力地堡 - 无属性序列上
问题描述:
类
发现我有这样一个类:火力地堡 - 无属性序列上
class dataModel {
String id, name;
Integer count;
dataModel() {}
}
我从火力添加数据。
mDatabase.addValueEventListener(mListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
dataSet.add(dataSnapshot.getValue(dataModel.class));
...
}
});
当我作为调试运行该应用程序时,没有任何问题。但它释放之后,与错误的应用程序崩溃:
com.google.firebase.database.DatabaseException: No properties to serialize found on class com.my.package.dataModel
我minifyEnabled真正
答
您需要添加到您的类implements Serializable
这样的:
class dataModel implements Serializable {
你还需要为你的文件添加一个构造函数。你的类应该是这样的:
class dataModel implements Serializable {
String id, name;
Integer count;
@ServerTimestamp
Date time;
dataModel() {}
dataModel(String id, String name, Integer count) {
this.id = id;
this.name = name;
this.count = count;
}
}
如果日期SI null
,它会在服务器生成的时间戳。所以你不需要为它设置价值。另请参阅用于标记日期字段以使用服务器时间戳填充的注释。
同样很重要的是,别忘了加public getters
。
另一个需求是在proguard-rules.pro中添加-keepclassmembers class com.yourcompany.models.** { *; }
。
如上所述here。
真实的解决方案:https://*.com/a/44474181/1537413 – Dika
@Dika刚刚用另一种方法编辑我的答案。希望你重新考虑提出答案。 –
完成。抱歉回复晚了。我编辑了你的答案 – Dika