Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许Google Cloud Vision API访问Firebase存储_Firebase_Firebase Storage_Google Cloud Vision - Fatal编程技术网

允许Google Cloud Vision API访问Firebase存储

允许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

我在iOS上使用Firebase,我想让用户将照片上传到Firebase存储。之后,我想使用谷歌云视觉API分析照片

上传效果很好

为了分析照片,我使用

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浏览器时,我注意到如果我运行经过身份验证的查询(使用我自己的帐户),那么它就会工作。但是,我还没有弄清楚如何使用服务帐户验证查询。