为什么来自 Firebase 存储的缓存图像比其他存储慢?

Why are cached images from Firebase Storage slower than others?

我正在尝试从 Firebase 存储中获取图像,而不是将它们作为资产与我的 Angular 项目一起托管。我也在用 Firebase 托管这个项目。

我发现在缓存图片后,加载之前从 Firebase 存储中检索到的图片仍然需要 400 毫秒以上。而与网站一起托管的缓存图像大约需要 10 毫秒。

我的印象是缓存的图片是保存在客户端本地的,所以为什么加载时间会有这么大的差异?

图片是 240 KB 的 jpeg。

托管资产的网络请求(缓存)

Firebase 存储(缓存)的网络请求

我读过这个问题:Firebase Storage very slow compared to Firebase Hosting

但我的问题是关于图像缓存的,所以我认为 CDN 不会有任何帮助。

我按照以下说明制作图像 public 解决了这个问题:https://cloud.google.com/storage/docs/access-control/making-data-public 缓存图像现在加载大约 15 毫秒。

我仍然想知道为什么缓存的图像需要 400 毫秒才能加载,我认为我对缓存有些不了解。

预计 Firebase 存储的时间会更长,因为 Firebase 访问正在做更多的工作,并且它会进行授权检查以确保它有一个令牌来证明安全规则允许访问。此外,您可以使用 Cache-Control that.

检查 Caching data

关于:

I have solved this issue by making the image public...

已记录 here,可公开缓存的对象在性能方面可以做得更好。

此外,额外的时间还取决于用户所在的区域。您还可以做的一件事是使用 Firebase Support 提出问题,以便他们可以进一步检查特定请求是否正在进入一个特别慢的区域。