#android #firebase #firebase-realtime-database #serialization #realm
#Android #firebase #firebase-база данных в реальном времени #сериализация #область
Вопрос:
Я использую realm db и firebase базу данных реального времени для создания своего приложения. В принципе, у меня есть ферма, и когда я создаю эту ферму, я могу загрузить ее в firebase, но когда я пытаюсь ее обновить, у меня появляется следующая ошибка: Сериализация коллекций не поддерживается, пожалуйста, используйте вместо этого списки
В принципе, я выполняю обновление, когда пользователь закрывает приложение, поэтому я вставлю свой код класса и свой код onStop. Если вы знаете, что я могу исправить, пожалуйста, помогите мне. Я в отчаянии. лол
Это мой код onStop:
override fun onStop() {
val realm = Realm.&etDefaultInstance()
realm.be&inTransaction()
val farm : Farm = realm.where<Farm&&t;().contains("id", id).findFirst()!!
farm.saveToDb()
realm.commitTransaction()
super.onStop()
}
Это мой код фермы:
open class Farm(
var codi&oFazenda: Strin& = "",
var pro&rama: Strin& = "",
var senha: Strin& = "",
var id: Strin& = ""
) : RealmObject() {
var area = 0.0
var metaMar&emLiquida = 0.0
var metaMar&emBruta = 0.0
var metaRendaBruta = 0.0
var metaPatrimonioLiquido = 0.0
var metaLucro = 0.0
var metasaldo = 0.0
var metaLiquidezGeral = 0.0
var metaLiquidezCorrente = 0.0
var observacao: Strin& = ""
var modificacao: Strin& = ""
fun myEquals(farm: Farm) : Boolean {
if(codi&oFazenda == farm.codi&oFazenda
amp;amp; pro&rama== farm.pro&rama
amp;amp; senha== farm.senha
amp;amp; id== farm.id
amp;amp; area== farm.area
amp;amp; metaMar&emLiquida== farm.metaMar&emLiquida
amp;amp; metaMar&emBruta== farm.metaMar&emBruta
amp;amp; metaRendaBruta== farm.metaRendaBruta
amp;amp; metaPatrimonioLiquido == farm.metaPatrimonioLiquido
amp;amp; metaLucro == farm.metaLucro
amp;amp; metasaldo == metasaldo
amp;amp; metaLiquidezGeral == farm.metaLiquidezGeral
amp;amp; metaLiquidezCorrente == farm.metaLiquidezCorrente
amp;amp; observacao== farm.observacao
) {
return true
}
return false
}
@Exclude
fun attModificacao() {
val todayDate: Date = Calendar.&etInstance().&etTime()
modificacao = todayDate.time.toStrin&()
}
@Exclude
fun saveToDb() {
attModificacao()
val db = Firebase.database.reference.child("fazendas").child(pro&rama).child(id)
db.setValue(this)
}
}
Поскольку я использую RealmObject, я не могу использовать класс данных, поэтому я создал этот метод MyEquals для сравнения моих результатов. Этот attModificacao — мой метод обновления, я вызываю его, чтобы сохранить время моего последнего обновления в firebase, и мое сохранение в db переносит значение в firebase.