当前位置: 首页 > 知识库问答 >
问题:

如何将Firebase存储映像与Google Cloud Vision API结合使用?

云欣嘉
2023-03-14

我有一个webapp,用户通过Firebase Auth进行匿名身份验证。我将来自用户的图像存储在Firebase存储中,Firebase存储在后台由谷歌云存储桶支持。当我试图从客户端javascript使用Google Cloud Vision API来获取图像属性时,我得到了一个权限错误。

image-annotator::User lacks permission.: Can not open file: gs://MYAPP.appspot.com/photos/IMG_12345.jpg

如果我把这张照片公之于众,一切都会好起来。但这是用户数据,不能公开。我该怎么解决这个问题?

我调用vision api的代码:

gapi.client.init({
    'apiKey': MY_API_KEY,
    'discoveryDocs': ['https://vision.googleapis.com/$discovery/rest'],
    // clientId and scope are optional if auth is not required.
    'clientId': MY_APP_ID + '.apps.googleusercontent.com',
    'scope': 'profile',
  }).then(function() {
    // 3. Initialize and make the API request.
    return gapi.client.vision.images.annotate({
      "requests":
      [
        {
          "features":
          [
            {
              "type": "LABEL_DETECTION"
            },
            {
              "type": "IMAGE_PROPERTIES"
            }
          ],
          "image":
          {
            "source":
            {
              "gcsImageUri": "gs://MY_APP.appspot.com/photos/" + "IMG_12345.jpg"
            }
          }
        }
      ]
    });
  }).then(function(response) {
    console.log(response.result);
  }, function(reason) {
    console.log('Error: ' + reason.result.error.message);
  });

我上传图片到存储的代码

var file = e.target.files[0];
var metadata = {
  contentType: file.type
};
console.log(file);

var uploadTask = photosStorageRef.child(file.name).put(file, metadata);

共有1个答案

翟学文
2023-03-14

你真的很想在服务器端通过类似谷歌云的功能来实现这一点(参见我这里的示例)。

客户端将要求您的API密钥具有足够的权限来访问这些照片,这基本上将使私人照片公开(因为一旦API密钥具有读取它们的权限,如何阻止恶意客户端这样做?)。

 类似资料:
  • 我正在使用以下方法来保存信息。 我已经删除了一些用于访问数据库的代码行。 这是日志猫的描述。 E/StorageException:已发生StorageException。发生未知错误,请检查HTTP结果代码和内部异常以获取服务器响应。代码:-13000 HttpResult:0 E/AndroidRuntime:FATAL EXCEPTION:Firebase Storage-Upload-1

  • 我创建了一个使用Firebase存储运行的应用。这个想法是,您从照片库中选择一张图片,然后将其上传到Firebase存储。与Firebase的连接似乎工作正常,我可以选择图像。当我按下提交按钮将其上传到Firebase时,问题就出现了。 当我点击它一次,什么也没发生。 当我点击它几次时,我得到一条消息“发生未知错误,请检查HTTP结果代码和内部异常”。。 我该怎么做,寻求建议。。 从舱单中: 从活

  • Firebase存储图像三分之二天未显示。我有一些发布的应用程序,在这些应用程序里面有一些图片显示从Firebase存储,现在突然它不显示/查看。我还从浏览器>Firebase Console>Storage检查了那些图像,但它没有显示图像预览,并且显示:“错误加载预览”。但我的Firebase Firestore数据显示没有任何错误。我查了储存配额,没有问题。我的火力点计划是“燃烧”,随走随付。

  • 我在中调用存储过程时遇到了问题。下面的代码运行良好。 CreateNativeQuery 而是如何将类与和一起使用。 存储过程 它给了我以下错误。 如何解决这个问题。 多谢了。

  • 我在我的世博会管理反应原生应用程序中使用了世博会图像选择器。它工作得很好。我只需要使用相机拍摄新照片,并为我的应用程序从图库中选择照片。对于这些,我使用了以下API 对于android,我在app.json文件中的权限数组如下 现在谷歌给我发了这封邮件 我们检测到您的应用程序在1个或多个应用程序捆绑包或APK的清单文件中包含requestLegacyExternalStorage标志。 在运行An

  • 我正在学习firebase,有一些关于Firebase存储的问题: < li >我可以使用的总文件大小的限制? < li >我想使用firebase datastorage使用avatar上传图像,然后使用该url将图像加载到带有glide或picasso的imageview。可能吗? < li >我想将我的应用程序与firebase authenticate配合使用,以使用登录、firebase