2016-07-05 4 views
1

Я использую Firebase на iOS, и я хочу, чтобы пользователи загружали фотографию в хранилище Firebase. После этого я хочу проанализировать фотографию с помощью API Google Cloud Vision.Предоставление Google Cloud Vision API доступа к хранилищу Firebase

Отправка работ прекращается.

Для анализа фото, я указать его с помощью

image = { 
    source = { 
     gcsImageUri = "gs://app.name.from.firebase.console/path.to.photo"; 
    }; 
}; 

Проблема заключается в том, что я получаю следующее сообщение об ошибке

error = { 
    code = 7; 
    message = "image-annotator::User lacks permission.: Calling GetObjectMetadata with file \"/bigstore/gs://app.name.from.firebase.console/path.to.photo\": cloud.bigstore.ResponseCode.ErrorCode::ACCESS_DENIED: ACCESS_DENIED: gaiaUser/0 does not have OBJECTS_GET access to object gs://app.name.from.firebase.console/path.to.photo."; 
}; 

Есть ли у вас какие-либо предложения w.r.t. какие разрешения мне нужно установить?

Спасибо!

ответ

1

Я предполагаю, что это связано с тем, что service account (документы GCS), созданные для использования API Cloud Vision и хранилища Firebase (только ведро Google Cloud Storage), могут не охватывать использование обоих из них. Как вы создали свою учетную запись службы? Согласно these instructions (Cloud Vision docs)?

Это можно решить, создав учетную запись службы с разрешениями на чтение вашего ведра (убедитесь, что роль IAM включает объект GET). Вам также может потребоваться добавить эту учетную запись службы в свои ведомости по умолчанию и ACL-объекты объекта, если она еще не была (они обычно добавляются, если они созданы с правой ролью IAM для ведра, но это разумно проверить).

FWIW, I have a project, что делает именно это, поэтому я удивлен, что учетная запись службы по умолчанию не будет работать для обеих этих вещей.

+0

Привет Майк, спасибо за ответ. Я проверю документы учетной записи службы и ваши инструкции. Я проверил ваши Flaming Specs, и я понимаю, что он создает новый файл с фото Firebase и передает этот файл Cloud Vision. Я хотел получить более простое решение, которое просто ссылается на изображение Firebase. – silviu

+0

Я создал учетную запись службы, выполняя руководство по Cloud Vision API. Я дал этому учетному записям доступ к ведро Firebase. Играя с API-интерфейсом API Google, я заметил, что если я запускаю аутентифицированные запросы (с моей собственной учетной записью), то он работает. Но мне еще предстоит выяснить, как аутентифицировать запросы с учетной записью службы. – silviu

0

Мне удалось временно устранить проблему, предоставив Reader для всех пользователей в ведре, а также для разрешений по умолчанию для объекта.

Смежные вопросы