使用kotlin数据类的Firebase @Exclude

时间:2016-10-18 19:13:51

标签: firebase firebase-realtime-database kotlin

我在Kotlin中有这个数据类(例子):

import com.google.firebase.database.Exclude

data class User(val name: String = "", @Exclude val age: Int = 0)

而且我不想在firebase中保存年龄属性。 @Exclude应该这样做,但它不起作用,年龄仍然保存。

有没有解决方法?

2 个答案:

答案 0 :(得分:36)

在属性上放置@Exclude会定位其生成的字段,而不是其生成的get accesor方法。要执行后者,您需要在“get:”前加上“Exclude”。 e.g:

data class User(val name: String = "", @get:Exclude val age: Int = 0)

有关详细信息,请参阅Annotation Use-site Targets

答案 1 :(得分:2)

实际上,您不需要仅添加@get:Exclude,而是需要所有3个排除项

@排除@set:排除@get:排除。

我为imageUrlproviderId做过

data class FirebaseChatModel(
        @get:PropertyName("message")
        @set:PropertyName("message")
        var message: String = "",
        @get:PropertyName("type")
        @set:PropertyName("type")
        var type: Int = 1,
        @get:PropertyName("senderId")
        @set:PropertyName("senderId")
        var senderId: Int = 0,
        @get:PropertyName("receiverId")
        @set:PropertyName("receiverId")
        var receiverId: Int = 0,
        @Exclude @set:Exclude @get:Exclude var imageUrl: String? = "",
        @Exclude @set:Exclude @get:Exclude var providerId: Int = 0
)