我正在为我的android应用程序使用firebase,每当我尝试将dataSnapshot转换为对象时,都会出现以下错误:
com.google.firebase.database.DatabaseException: Class java.lang.Class has generic type parameters, please use GenericTypeIndicator instead
这是我的课程:
class DatabaseApi<T> {
suspend fun getData(path: String): DatabaseResult<Class<T>?> {
val databaseResult = DatabaseHelper().get(path)
return try {
convertDatabaseSnapshot(databaseResult.value)
} catch (e: Exception) {
DatabaseResult.failed(e.toString())
}
}
fun <T> convert(cls: Class<T>, snapShot: DataSnapshot): DatabaseResult<T?> {
return try {
val data = snapShot.getValue(cls)
DatabaseResult.success(data)
} catch (e: Exception) {
val message = e.message ?: ""
DatabaseResult.failed(message)
}
}
inline fun <reified T> convertDatabaseSnapshot(snapShot: DataSnapshot): DatabaseResult<T?> {
return convert(T::class.java, snapShot)
}
}
这是我得到错误的代码:
val data = snapShot.getValue(cls)