Как получить доступ к значениям из kotlin MutableMap <String, Value>?
Я использую Kotlin для получения ответа от агента DialogFlow. Ответ в консоли Android выглядит следующим образом:
parameters {
fields {
key: "EmployeeID"
value {
number_value: 12345.0
}
}
}
В kotlin я использую SessionClient для создания функции, которая возвращает настраиваемый ответ из нескольких полей,
fun detectIntentTexts(
text: String,
sessionId: String,
languageCode: String
): TextResponse {
val sessionsSettings = SessionsSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credentials))
.build()
SessionsClient.create(sessionsSettings).use {
sessionsClient - >
val session = SessionName.of(credentials.projectId, sessionId)
val textInput = TextInput.newBuilder()
.setText(text).setLanguageCode(languageCode)
val queryInput = QueryInput
.newBuilder().setText(textInput).build()
val response = sessionsClient.detectIntent(session, queryInput)
return TextResponse(response.queryResult.fulfillmentText, response.queryResult.parameters.fieldsMap)
}
}
В другом классе Kotlin я пытаюсь получить доступ response.queryResult.parameters.fieldsMap
использование getValue(key:String) в качестве fieldsMap возвращает его типа MutableMap
Всякий раз, когда я пытаюсь получить доступ к значению ключа,
Log.i("TEST",answer.parametersMap.getValue("EmployeeID").toString())
При сборке он продолжает выдавать следующую ошибку:
Cannot access class 'com.google.protobuf.Value'.
Check your module classpath for missing or conflicting dependencies
Примечание. Когда я получаю доступ к
response.queryResult.parameters.fieldsMap.values.toString()
это не вызывает ошибок. Я также попытался добавить зависимости protobuf в файл build.gradle, используя эту документацию, но при сборке все еще выдает указанную выше ошибку.
Было бы здорово, если бы кто-нибудь мог решить это в kotlin и дать некоторое представление о том, почему он недоступен.