Подтвердить что ты не робот

Firebase @Exclude с классом данных kotlin

У меня есть этот класс данных в Kotlin (пример):

import com.google.firebase.database.Exclude

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

И я не хочу сохранять свойство возраста в firebase. @Exclude должен делать это, но он не работает, возраст все еще сохраняется.

Есть ли способы обхода?

4b9b3361

Ответ 1

Размещение @Exclude объекта присваивает его сгенерированное поле, а не его сгенерированный метод get accesor. Чтобы сделать последнее, вам понадобится префикс "Исключить" с помощью "get:". например:.

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

Подробнее см. Цели использования целевых сайтов.

Ответ 2

На самом деле вам не нужно добавлять только @get:Exclude но вам нужны все 3 Exclude,

@Exclude @set: Exclude @get: Исключить.

Я сделал это для imageUrl и providerId

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
)