可调用函数支持缓存吗?

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函数有效吗?

以上是关于可调用函数支持缓存吗?的主要内容,如果未能解决你的问题,请参考以下文章

可调用云函数比 HTTP 函数更好吗?

C++ Primer 5th笔记(chap 19 特殊工具与技术)将成员函数用作可调用对象

在可调用函数中使用自定义声明时是不是需要调用 verifyIdToken()? [复制]

让类成员函数指针成为可调用对象

C++高级开发之可调用对象functionbind

C++高级开发之可调用对象functionbind