Firebase – 没有在类上找到的序列化属性

我有一个这样的课:

class dataModel { String id, name; Integer count; dataModel() {} } 

我从Firebase添加数据。

 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

另一个要求是添加-keepclassmembers class com.yourcompany.models.** { *; } 在proguard-rules.pro中。

如上所述。