从浏览器访问签名的firebase存储url说"访问被拒绝"

时间:2018-04-14 17:59:08

标签: android firebase firebase-storage

我有一个云功能,可以将已上传图像的签名网址生成到firebase存储中,并且能够生成签名网址。

当我尝试通过浏览器从该网址访问该图片时,下面是我收到的错误消息。

killall

错误讯息:

url : https://storage.googleapis.com/mango-b715d.appspot.com/thumb_ESP_014033_1910_desktop.jpg?GoogleAccessId=firebase-adminsdk-lar4y@mango-b715d.iam.gserviceaccount.com

有人可以解释我,如何解决这个错误,我的主要目的是将该图像下载到Android应用程序到外部卡。

有人可以指导我。

想要添加更多信息。

完成签名网址

<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>
Anonymous caller does not have storage.objects.get access to mango-b715d.appspot.com/thumb_ESP_014033_1910_desktop.jpg.
</Details>
</Error>

在url上方访问时出现错误消息。

https://storage.googleapis.com/mango-b715d.appspot.com/ESP_014033_1910_desktop.jpg?GoogleAccessId=firebase-adminsdk-lar4y@mango-b715d.iam.gserviceaccount.com&Expires=13575340800&Signature=ayF424C3Fd04XLF82GeREn72wvl0Cox9cB%2BrSPK6wohEP1taXb7yMeW%2Fe6QRirpn%2BSM3HaU2CGRhi6Ae5RmJL8lYKPa%2BGOUhiWG6MxVsInoE0SbvkZeW0fIVdsVyGFIcQkFQeeiaBBm5E239TfAPP8P%2F%2BemcVQ8oiOCKac8uOIb4S4aIQfFBhkuWHNf2U8g4%2B9VxWTrAkRbYN5wuVc78mZmmuKi6q%2BT1IMB5nWnO3z4x893%2FyalzBEtT3uWRibesBspKLEJkoBn1dU7bYi0XuyZ6GByJesJMmGjZvq99hcI%2FgQ7kutGHcLS5HJ%2Bw9UZwwgNqMFlF%2BoS7WQg7Eu68tQ%3D%3D

2 个答案:

答案 0 :(得分:0)

您目前的存储规则很可能是这样的:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

您可以在Storage > Rules.

下的firebase控制台上查看它们

这意味着您的用户应该通过身份验证来读取或写入存储空间。

如果您希望每个人都可以在未经身份验证的情况下访问资源,则可以在Authentication > Sign-In Method中启用此功能并启用Anonymous

在此之前,考虑到这一点:

  

“我的主要目的是将该图像下载到Android应用程序中   外卡。“

也许您应该只使用Google登录方法,并让您的用户在应用内进行身份验证。看到 https://firebase.google.com/docs/auth/android/google-signin?hl=es-419

答案 1 :(得分:0)

尽管我的Firebase存储规则已被读取,但我也遇到了这个问题

allow read: if true;

奇怪的是,Cloud Storage控制台仍将存储桶显示为“非公共”。 更改它以允许公众访问可以解决我的问题。

  1. 在Google Cloud Platform Console中打开Cloud Storage浏览器。
  2. 在存储桶列表中,单击要公开的存储桶名称。选择页面顶部附近的“权限”选项卡。
  3. 单击“添加成员”按钮。
  4. 出现“添加成员”对话框。
  5. 在“新成员”字段中,输入allUsers。
  6. 在“角色”下拉菜单中,选择“存储”子菜单,然后单击     存储对象查看器选项。

从-https://cloud.google.com/storage/docs/access-control/making-data-public

复制的步骤