在我的应用中,用户个人资料向公众开放,并且仅由个人资料所有者更新。
个人资料 URL 为 example.com/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a1d1d3cec7c8cdc49ed4d2c4d39ce1d4d2c4d38fccc4" rel="noreferrer noopener nofollow">[email protected]</a>
并基于文档 https://firebase.google.com/docs/hosting/functions 。我可以缓存函数的响应 JSON,在本例中为公共(public)配置文件。这将为我节省大量云函数执行和 Firebase 数据库带宽
当用户更新他的个人资料时,我想在 CDN 中重新缓存该个人资料。
我认为这可以通过让用户重新请求他的公开个人资料来完成,使用 Cache-Control: no-cache
在成功更新他的个人资料后,在请求 header 中。
当用户随后访问相同的个人资料时,他将看到新版本。
这可能吗?或者不是这样Cache-Control
应使用。
最佳答案
此处为 firebaser
Cloud Functions、Firebase Hosting 及其 CDN 之间的集成目前是纯粹基于生存时间的缓存。当您在 Cloud Functions 中设置缓存 header 时,CDN 会在您指定的时间段内将您的响应放入其边缘缓存中。一旦过期,CDN 边缘将停止提供缓存中的内容,并在该边缘上的用户请求时从服务器请求新副本。
我们知道,拥有一个 API 来告诉 CDN 刷新此内容将允许许多其他用例。但这目前不在 Firebase 托管的范围内。
关于firebase - 缓存 Firebase 请求的云函数的示例,并且仅在成功编辑配置文件后重新缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45255232/