Serialization 将kotlin数据类作为文档持久化到Google Cloud Firestore时尝试排除字段

Serialization 将kotlin数据类作为文档持久化到Google Cloud Firestore时尝试排除字段,serialization,kotlin,google-cloud-firestore,Serialization,Kotlin,Google Cloud Firestore,我有这个数据类 data class TripEntity(@Exclude val id: String = "", val name: String = "", val totalDistance: Long = 0, val startDate: Date?, val endDate: Date?) 然后我有这些方法来保存数据 private fun writeNewTripEntity(tripEntity: TripEntity, emitter: ObservableEmitter

我有这个数据类

data class TripEntity(@Exclude val id: String = "", val name: String = "", val totalDistance: Long = 0, val startDate: Date?, val endDate: Date?)
然后我有这些方法来保存数据

private fun writeNewTripEntity(tripEntity: TripEntity, emitter: ObservableEmitter<TripEntity>) {
    val tripCollection = FirebaseFirestore.getInstance().collection("users/test/trips");
    tripCollection.add(tripEntity).addOnSuccessListener({ documentReference ->
        onWriteEntitySuccess(documentReference, emitter, tripEntity)
    }).addOnFailureListener({ e ->
        onWriteEntityError(e, emitter)
    })
}

private fun onWriteEntitySuccess(documentReference: DocumentReference, emitter: ObservableEmitter<TripEntity>, tripEntity: TripEntity) {
    Timber.log(Log.DEBUG, "TripEntity saved to FireBase successfully: " + documentReference.toString())
    emitter.onNext(TripEntity(documentReference.id, tripEntity.name, tripEntity.totalDistance, tripEntity.startDate, tripEntity.endDate))
    emitter.onComplete()
}

private fun onWriteEntityError(e: Exception, emitter: ObservableEmitter<TripEntity>) {
    Timber.e("Data could not be saved: %s", e.message)
    emitter.onError(e)
}
私有乐趣写入成熟度(tripEntity:tripEntity,发射器:ObservieMitter){
val tripCollection=FirebaseFirestore.getInstance().collection(“users/test/trips”);
tripCollection.add(tripEntity.addOnSuccessListener)({documentReference->
onWriteEntitySuccess(documentReference、emitter、tripEntity)
}).addOnFailureListener({e->
onWriteEntityError(e,发射器)
})
}
private fun on WriteEntitySuccess(documentReference:documentReference,发射器:ObservateEmitter,tripEntity:tripEntity){
log(log.DEBUG,“TripEntity已成功保存到FireBase:”+documentReference.toString())
emitter.onNext(TripEntity(documentReference.id、TripEntity.name、TripEntity.totalDistance、TripEntity.startDate、TripEntity.endDate))
emitter.onComplete()
}
private fun on WriteEntityError(e:异常,发射器:ObservieMitter){
Timber.e(“无法保存数据:%s”,e.message)
发射器。onError(e)
}
然后,该文档将被持久保存在Firestore中,但不会排除ID,因为根据Firestore文档,它应该被排除


谢谢您的帮助。

尝试使用@Transient forid@fisher3421试过了,但行为还是一样。