2016-07-05 11 views
1

私はFireOSをiOSで使用しています。ユーザーがFirebase Storageに写真をアップロードできるようにします。その後、Google Cloud Vision APIを使用して写真を分析します。Google Cloud Vision APIにFirebase Storageへのアクセスを提供します。

アップロードは正常です。写真を分析するために

、私はこの問題は、私が

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."; 
}; 

あなたはどんな提案を持っています、次のエラーを取得することである

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

を使用して、それを指定していますw.r.t.どのアクセス許可を設定する必要がありますか?

ありがとうございます!

答えて

1

これは、Cloud Vision APIとFirebase Storage(Google Cloud Storageバケットのみ)を一緒に使用するために作成したservice account(GCSドキュメント)が両方を使用していると考えられます。どのようにサービスアカウントを作成しましたか? these instructions(Cloud Vision docs)によると?

バケットを読み取る権限を持つサービスアカウントを作成することで、これを解決できます(IAMロールにオブジェクトGETが含まれていることを確認してください)。このサービスアカウントを既定のバケットおよびオブジェクトACLに追加する必要があります(まだバケットのIAMの役割が適切に作成されている場合は追加されますが、チェックするのが賢明です)。

FWIW、I have a projectこのように、デフォルトのサービスアカウントはこれらの両方で機能しないことに驚いています。

+0

こんにちはマイク、答えに感謝します。私はサービスアカウントの文書とあなたが投稿した指示をチェックします。あなたのFlaming Specをチェックしました.Firebaseの写真から新しいファイルを作成し、そのファイルをCloud Visionに渡すことを理解しました。 Firebaseのイメージを参照するより簡単な解決策が必要でした。 – silviu

+0

クラウドビジョンAPIチュートリアルの実行中にサービスアカウントを作成しました。私はそのアカウントにFirebaseバケットへの読み取りアクセス権を与えました。 Google API Explorerで遊んで、認証されたクエリを(自分のアカウントで)実行すると動作することに気付きました。しかし、私はまだサービスアカウントでクエリを認証する方法を理解していません。 – silviu

0

私はバケット上のすべてのユーザーとユーザーの既定のアクセス許可にリーダー権限を与えることで、問題を一時的に解決できました。

関連する問題