繁体   English   中英

Firebase - 在类上找不到要序列化的属性

[英]Firebase - No properties to serialize found on class

我有一个这样的课程:

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 true

为了解决这个问题,你的类需要实现Serializable接口:

class dataModel implements Serializable {}

您还需要添加一个带有三个参数的构造函数。 你的类应该是这样的:

class dataModel implements Serializable {
    private String id, name;
    private Integer count;
    @ServerTimestamp
    private Date time;

    dataModel() {}

    dataModel(String id, String name, Integer count) {
        this.id = id;
        this.name = name;
        this.count = count;
    }
}

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

同样非常重要的是,不要忘记添加public getters

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

正如这里所说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM