具有通用类型的Firebase toObject

时间:2018-10-09 03:30:10

标签: java android firebase google-cloud-firestore

这是我关于StackOverflow的第一个问题,因此,如果我做错了什么,请帮助我。

我一直在使用Kotlin和Firebase Firestore开发一个Android应用程序,并且我有一个具有通用类型 T 属性的数据类。

好吧,我的问题是:尝试使用toObject方法将Firestore对象解析为我的POJO时出现错误。错误消息说使用GenericTypeIndicator,但是在Firestore SDK中不存在。我尝试安装Firebase数据库SDK来导入此接口,但效果不佳。

这是我的POJO课:

@Parcelize
data class Policy<T : Parcelable>(var id: String = "",
                              var type: String = "",
                              var paid: Boolean = false,
                              var price: Double = 0.0,
                              var uid: String = "",
                              var policy: T? = null) : Parcelable

这是我的存储库方法:

override fun getPolicies(uid: String): Single<List<Policy<T>>> =
    Single.create {emitter ->
        db.collection(POLICIES_COLLECTION)
                .whereEqualTo(FIELD_UID, uid)
                .get()
                .addOnSuccessListener {
                    emitter.onSuccess(it.toObjects(Policy::class.java) as List<Policy<T>>)
                }
                .addOnFailureListener {
                    emitter.onError(it)
                }

    }

任何人都可以帮助我弄清楚如何使其工作吗?

0 个答案:

没有答案