繁体   English   中英

公开图像仅适用于 Firebase 托管

[英]Public images only to Firebase Hosting

我是 Google Cloud 和 Firebase 的新手。 网站/应用程序在 Vue 中运行客户端。 我正在使用 Firebase 进行身份验证/托管/存储/功能。 问题是我想在存储中存储不可公开访问的图像,但将它们视为公共图像。 Aka 将资产放在 img src 中,并在网站上的地方使用它。

通过函数检查每个图像是否经过身份验证既昂贵又缓慢。 我想让 /img/foobar.jpg 真正是https://storage .*/img/foobar.jpg 不通过函数运行但不能公开访问。

如果我上传图像并且所有者是我(这是一个 Google 帐户),我可以在没有功能的情况下显示图像。 这不会对每个人都有效,因为该网站的用户没有 Google 帐户。

我想我可以制定一个存储桶策略,说明只有指向图像的直接链接不起作用,但 Firebase 托管站点可以公开查看图像。 由于 Firebase 托管站点在登录之后,因此资产将受到保护。 这可能吗? 我没有看到任何文件来支持这一点。

您声明您正在使用firebase身份验证。 在firebase存储规则中,您可以定义只有在用户通过身份验证时才能读取文件。 这样的东西就足够了:

match /{allPaths=**} {
      allow read: if request.auth != null;
    }

有关详细信息,请参阅https://firebase.google.com/docs/storage/security/start

存储 -> 规则

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read;
      allow write: if true;
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM