允许Google Cloud Vision API访问Firebase存储
我在iOS上使用Firebase,我想让用户将照片上传到Firebase存储。之后,我想使用谷歌云视觉API分析照片 上传效果很好 为了分析照片,我使用允许Google Cloud Vision API访问Firebase存储,firebase,firebase-storage,google-cloud-vision,Firebase,Firebase Storage,Google Cloud Vision,我在iOS上使用Firebase,我想让用户将照片上传到Firebase存储。之后,我想使用谷歌云视觉API分析照片 上传效果很好 为了分析照片,我使用 image = { source = { gcsImageUri = "gs://app.name.from.firebase.console/path.to.photo"; }; }; 问题是我得到了以下错误 error = { code = 7; message = "image-annot
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.";
};
你有什么建议吗?我需要设置什么权限
谢谢 我认为这是因为您为同时使用Cloud Vision API和Firebase存储(只是一个Google云存储桶)而创建的(GCS文档)可能无法同时使用这两种存储。您是如何创建服务帐户的?根据(云视觉文档) 您可以通过创建一个具有读取bucket权限的服务帐户来解决此问题(请确保IAM角色包括object GET)。如果尚未将此服务帐户添加到默认的bucket和对象ACL中,您可能还必须将其添加到默认的bucket和对象ACL中(如果使用bucket的正确IAM角色创建这些帐户,则通常会添加这些帐户,但最好进行检查)
FWIW,就是这样,所以我很惊讶默认服务帐户不能同时处理这两件事。我设法暂时解决了这个问题,给了读者对bucket上的allUsers的权限以及对象的默认权限。嗨,Mike,谢谢你的回答。我会检查服务帐户文档和您发布的说明。我检查了你的火焰规格,我知道它从Firebase照片创建了一个新文件,并将该文件传递给Cloud Vision。我想要一个更简单的解决方案,只引用Firebase映像。我在编写CloudVisionAPI教程时创建了一个服务帐户。我给了那个帐户Firebase bucket的读取权限。在使用GoogleAPI浏览器时,我注意到如果我运行经过身份验证的查询(使用我自己的帐户),那么它就会工作。但是,我还没有弄清楚如何使用服务帐户验证查询。