Firebase @Exclude с классом данных kotlin
У меня есть этот класс данных в Kotlin (пример):
import com.google.firebase.database.Exclude
data class User(val name: String = "", @Exclude val age: Int = 0)
И я не хочу сохранять свойство возраста в firebase. @Exclude должен делать это, но он не работает, возраст все еще сохраняется.
Есть ли способы обхода?
Ответы
Ответ 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
)