为 firebase 请求缓存云功能的示例,并且仅在成功编辑配置文件后重新缓存
example for caching cloud function for firebase requests and only re cache after a successful edit to the profile
在我的应用中,用户个人资料对 public 开放,并且只能由个人资料所有者更新。
配置文件 URL 是 example.com/profile?user=@user.me
并基于文档 https://firebase.google.com/docs/hosting/functions。我可以缓存函数的响应 JSON,在本例中为 public 配置文件。这将为我节省大量的云函数执行和 Firebase 数据库带宽
并且当用户更新他的配置文件时,我想在 CDN 中重新缓存配置文件。
我认为这可以通过让用户 re-request 成为他的 public 个人资料来完成,在请求 header 中使用 Cache-Control: no-cache
,在成功更新他的个人资料之后.
当用户之后访问同一个配置文件时,他将看到新版本。
这可能吗??或者这不是 Cache-Control
的使用方式。
firebaser 在这里
Cloud Functions、Firebase Hosting 及其 CDN 之间的集成目前是纯粹基于 time-to-live 的缓存。当您在 Cloud Functions 中设置 cache-header 时,CDN 会在您指定的时间段内将您的响应放入其边缘缓存中。一旦过期,CDN 边缘将停止提供缓存中的内容,并在该边缘上的用户请求时从服务器请求新副本。
我们知道,让 API 告诉 CDN 刷新此内容将允许许多额外的 use-cases。但这目前不在Firebase Hosting的范围内。
在我的应用中,用户个人资料对 public 开放,并且只能由个人资料所有者更新。
配置文件 URL 是 example.com/profile?user=@user.me
并基于文档 https://firebase.google.com/docs/hosting/functions。我可以缓存函数的响应 JSON,在本例中为 public 配置文件。这将为我节省大量的云函数执行和 Firebase 数据库带宽
并且当用户更新他的配置文件时,我想在 CDN 中重新缓存配置文件。
我认为这可以通过让用户 re-request 成为他的 public 个人资料来完成,在请求 header 中使用 Cache-Control: no-cache
,在成功更新他的个人资料之后.
当用户之后访问同一个配置文件时,他将看到新版本。
这可能吗??或者这不是 Cache-Control
的使用方式。
firebaser 在这里
Cloud Functions、Firebase Hosting 及其 CDN 之间的集成目前是纯粹基于 time-to-live 的缓存。当您在 Cloud Functions 中设置 cache-header 时,CDN 会在您指定的时间段内将您的响应放入其边缘缓存中。一旦过期,CDN 边缘将停止提供缓存中的内容,并在该边缘上的用户请求时从服务器请求新副本。
我们知道,让 API 告诉 CDN 刷新此内容将允许许多额外的 use-cases。但这目前不在Firebase Hosting的范围内。