可调用函数支持缓存吗?
Posted
技术标签:
【中文标题】可调用函数支持缓存吗?【英文标题】:Caching supported for callable functions? 【发布时间】:2018-10-22 12:31:58 【问题描述】:我想知道是否可以将缓存控制设置应用于可调用函数的响应。我们之前使用过 http 触发器并切换到可调用函数,但找不到任何方法来接管缓存控制标头。
更具体地说:http 触发的云函数允许这样的缓存设置:
exports.myFunc = functions.https.onRequest((req, res) =>
res.set('Cache-Control', 'public, max-age=600, s-maxage=1200');
...
当我们迁移到可调用函数时
exports.myFunc = functions.https.onCall((data, context) =>
...
/* no res-object for cache-control? */
...
)
在我们的应用程序中调用如下:
const myFunc = functions.httpsCallable('myFunc');
myFunc(params).then(result => ...)
我们找不到在任何地方应用缓存设置的方法。
【问题讨论】:
请编辑您的问题以描述您究竟尝试了哪些没有按您预期的方式工作。 您是否以任何方式解决了这个问题?我试图弄清楚,如何在可调用函数中实现缓存功能,但现在不知道:/ 不幸的是,不是。我通过 axios GET-calls 回到使用 Cloud Functions 我也在寻找解决方案。 嘿@DougStevenson,因为您在 Firebase 工作,也许您可以简单地回答是否可能? 【参考方案1】:目前无法使用可调用函数设置响应标头。如果这对您很重要,请file a feature request.
【讨论】:
我使用context.rawRequest.res!.setHeader()
,结果我在浏览器中看到了这个标头,但没有发生缓存。一个问题,这种方法对可调用的firebase函数有效吗?以上是关于可调用函数支持缓存吗?的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th笔记(chap 19 特殊工具与技术)将成员函数用作可调用对象