gpt4 book ai didi

reactjs - Firebase 存储获取速度极慢

转载 作者:行者123 更新时间:2023-12-05 01:57:48 26 4
gpt4 key购买 nike

我在 React-Native 应用程序(expo)上使用 Firebase,我遇到了一些性能问题(主要是 Firebase 存储)。

例如,每当我为帖子获取数据并想要显示照片时,如果照片(640x480)我必须等待大约 1.5-2 秒,视频(480p)需要等待 2.5-3.5 秒,如果它们是在应用程序上上传的Firebase 存储。

但是,当我将 firestore 字段中的链接更改为外部链接(相同图像 - 相同分辨率,但托管在另一台主机上,而不是 firebase 存储)时,图像会立即加载。因此,据我所知,firestore 运行良好,但 firebase 存储链接加载速度非常慢。

有什么方法可以提高它的性能吗?我认为 640x480 图片的 1.5-2 秒不合适

最佳答案

Firebase 存储不是 CDN,因此如果您的存储桶距离您太远,则可能需要一段时间。我不确定您的 640x480 图片的大小,但 1-2 秒听起来还不错。我尝试先从本地计算机下载 219,457 字节 的图像,然后从 VM 实例(下载速度超过 4000 Mbps)下载图像。 VM 只用了 0.5 秒 就下载了它(存储桶所在的同一区域),但我的计算机在 2-4 秒 之间的任何地方都被下载了。

Will hosting the app on firebase hosting solve this issue? I see firebase hosting distributes it to a global cdn

Firebase 存储和托管是两项独立的服务。托管服务网站资源,例如 HTML、JS 或您使用 firebase deploy --only hosting 命令通过 CDN 部署的任何静态文件。

最好的选择是将 CDN 与 Firebase 存储一起使用。你可以setup Google Cloud CDN with Storage bucket .我刚刚比较了使用和不使用 CDN 从 Firebase 存储下载的时间,区别如下:

没有 CDN:

enter image description here

使用 CDN:

enter image description here


此外,即使您已从 Firebase 存储中删除图像,您的 CDN 提供商也可能会继续提供缓存版本,因此请确保提供商具有某种 API 以从缓存中清除特定文件。

编辑:

一旦图像被缓存到边缘,任何人都可以在没有 ?token= 参数的情况下访问它,这违背了拥有它的目的和安全规则。尽管安全规则只是阻止随机用户获取下载 URL 并且在授权用户与他人共享图像时无法访问图像,但这在某些情况下可能并不理想。

一种解决方法是使用这些标记 (UUID) 作为图像名称(例如 img_9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d.png),但您无法撤销这些标记,除非您重新上传图像(使用新 token 重命名图像)。

关于reactjs - Firebase 存储获取速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68879868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com