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

npk*_*npk 5 java android firebase firebase-realtime-database

我有一个这样的课:

class dataModel {
    String id, name;
    Integer count;

    dataModel() {}
}
Run Code Online (Sandbox Code Playgroud)

我从Firebase添加数据.

mDatabase.addValueEventListener(mListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            dataSet.add(dataSnapshot.getValue(dataModel.class));
            //...
        }
});
Run Code Online (Sandbox Code Playgroud)

当我将应用程序作为调试运行时,没有问题.但在它发布后,应用程序崩溃并出现错误:

com.google.firebase.database.DatabaseException: No properties to serialize found on class com.my.package.dataModel
Run Code Online (Sandbox Code Playgroud)

我有minifyEnabled 是的

Ale*_*amo 19

你需要null像这样添加到你的类中:

class dataModel implements Serializable {}
Run Code Online (Sandbox Code Playgroud)

您还需要为您的文件添加一个构造函数.你的课应该是这样的:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果是日期si annotation,它将具有服务器生成的时间戳.所以你不需要为它设置值.另请参阅用于标记要使用服务器时间戳填充的日期字段的注释.

同样非常重要,不要忘记添加Date.

另一个要求是public getters在proguard-rules.pro中添加.

至于说这里.