尝试将数据添加到实时数据库时,Firebase“没有在类上找到序列化的属性”

时间:2018-03-20 19:45:27

标签: android firebase kotlin

简而言之,我正在尝试将用户的信息格式化到数据库中,以便在通过JSON发送时数据大写--Google搜索告诉我@PropertyName功能,我一直试图用它来取消成功。用户类如下:

class User(@PropertyName("FirstName") @get:Exclude @set:Exclude var firstName: String = "",
           @PropertyName("LastName") @get:Exclude @set:Exclude var lastName: String = "",
           @PropertyName("Email") @get:Exclude @set:Exclude var Email: String = "",
           @PropertyName("PhoneNumber") @get:Exclude @set:Exclude var phoneNumber: String = "",
           @PropertyName("Gender") @get:Exclude @set:Exclude var Gender: String = "",
           @PropertyName("City") @get:Exclude @set:Exclude var City: String = "",
           @PropertyName("DateOfBirth") @get:Exclude @set:Exclude var dateOfBirth: String = "",
           @PropertyName("School") @get:Exclude @set:Exclude var School: String = "",
           @PropertyName("Work") @get:Exclude @set:Exclude var Work: String = "",
           @PropertyName("DateJoined") @get:Exclude @set:Exclude var dateJoined: Long = 0L)

以新用户身份注册时,该帐户是在Firebase中创建的,但在尝试将其信息添加到实时数据库时收到以下消息时出现错误:com.google.firebase.database.DatabaseException: No properties to serialize found on class com.android.projectrc.User - 我很确定与PropertyName属性有关,因为这在添加它之前从未发生过 - 但是删除它不是一个选项,因为我需要格式化数据以特定方式来防止数据库中现有信息的问题(目前它被格式化为camel- case,所以当我需要它作为“FirstName”时,“firstName”将成为关键

我实际尝试将用户信息添加到数据库的代码是以下两行:

val user = User(firstName, lastName, email)
//add user info to database
mDatabase.child("Users").child(userId).child("UserInfo").setValue(user)

第三行似乎也是错误发生的地方。我可以使用其他一些解决方法解决这个问题,还是有些东西我不知道?

0 个答案:

没有答案