Я установил небольшое приложение для Android и Firebase ... Аутентификация работает как чудо, и в консоли Firebase я вижу своего пользователя, вошедшего в систему с учетной записью Google.
Теперь яя пытаюсь немного поэкспериментировать с API-интерфейсом Text to Speech, и при этом я следовал этому уроку:
https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/texttospeech/cloud-client
Мне удалось заставить небольшое приложение Java работать, установивпеременная среды GOOGLE_APPLICATION_CREDENTIALS (я следовал этому руководству для этого шага: https://cloud.google.com/docs/authentication/getting-started),, но я не уверен, что мне нужно сделать, чтобы этот код работал в приложении Android, где пользователи проходят аутентификацию ..
Ошибка, которую я получаю при попытке вызвать API-интерфейс TextToSpeech:
Учетные данные приложения по умолчанию недоступны. Они доступны при запуске в Google Compute Engine. В противном случае переменная средыНеобходимо указать GOOGLE_APPLICATION_CREDENTIALS, указывающий на файл, определяющий учетные данные. Для получения дополнительной информации см. https://developers.google.com/accounts/docs/application-default-credentials.
Указанная ошибка происходит из строки:
TextToSpeechClient textToSpeechClient = TextToSpeechClient.create();
Эта ошибка возникает из-за того, что на эмуляторе Android у меня нет доступа к учетным данным, которые установлены в качестве переменной средыв моей ОС ... Так что я должен предоставить учетные данные другим способом.
В случае других API Google, таких как Storage, я обнаружил, что это можно сделать следующим образом:
// You can specify a credential file by providing a path to GoogleCredentials.
// Otherwise credentials are read from the GOOGLE_APPLICATION_CREDENTIALS environment variable.
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream(jsonPath))
.createScoped(Lists.newArrayList("https://www.googleapis.com/auth/cloud-platform"));
Storage storage = StorageOptions.newBuilder().setCredentials(credentials).build().getService();
Мне удалось создать объект GoogleCredentials с содержимым файла json, однако клиент TextToSpeech, похоже, не предоставляет такую функциональность:
StorageOptions.newBuilder().setCredentials(credentials).build()
Так что мой вопрос ....Есть ли способ предоставить объект Credentials клиенту TextToSpeech?
Спасибо