我有一个云功能,可以将已上传图像的签名网址生成到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
答案 0 :(得分:0)
您目前的存储规则很可能是这样的:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
您可以在Storage > Rules.
这意味着您的用户应该通过身份验证来读取或写入存储空间。
如果您希望每个人都可以在未经身份验证的情况下访问资源,则可以在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控制台仍将存储桶显示为“非公共”。 更改它以允许公众访问可以解决我的问题。
从-https://cloud.google.com/storage/docs/access-control/making-data-public
复制的步骤