Firebase toObject с универсальным типом - PullRequest
0 голосов
/ 09 октября 2018

Это мой первый вопрос о StackOverflow, поэтому, если я делаю что-то не так, пожалуйста, помогите мне.

Я работаю над приложением для Android, используя Kotlin и Firebase Firestore, и у меня есть класс данных ссвойство общего типа T .

Что ж, моя проблема в том, что я получаю сообщение об ошибке при попытке использовать метод toObject для анализа объекта Firestore в моем POJO.В сообщении об ошибке говорится об использовании GenericTypeIndicator, но его нет в Firestore SDK.Я попытался установить Firebase Database 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)
                }

    }

Кто-нибудь может помочь мне понять, как заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...