如何在Firebase云函数中设置特定头文件的缓存?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Firebase云函数中设置特定头文件的缓存?相关的知识,希望对你有一定的参考价值。
我不确定这是否可行。我正在向一个外部api发出请求,并且在每次从我的应用程序发出请求时,我将用户的查询传递到一个自定义的 'query'
云函数(Typescript)中的头。⤵
export const searchQuery = functions.https.onRequest(async (request, response) => {
// : Reads request query data from user
const query = request.headers.query;
...
我尝试设置缓存,使每次查询都能单独缓存结果,但似乎没有效果。~
(在没有设置variety header的情况下,缓存也可以工作,但是它只缓存第一个搜索结果) (所有的请求都是以 GET
)
这是设置 'query'
头作为缓存的不同规则(用Typescript编写)。⤵
...
return await admin.auth().verifyIdToken(tokenId) // : Authenticates response
.then(() => {
// : Set cache-control
console.log(request.headers);
response.set('Vary', 'Accept-Encoding, query');
response.set("Cache-Control", "public, s-maxage=600");
response.set("Access-Control-Allow-Origin", "*");
response.set("Access-Control-Allow-Methods", "GET");
// : Grab API search data
axio.get(urlAssembler).then(APIData => {
response.status(200).send(APIData.data);
}).catch(error => console.log(error));
})
.catch((err) => response.status(401).send(err));
...
我在Cloud Functions w Firebase上有这个设置,而不是Cloud Functions with Firebase Hosting。我想知道这两者是否有区别,但似乎没有。
在我的 firebase.json
我注意到它是为Cloud Functions设置的,而不是为Firebase Hosting设置的。也许我需要把它设置为Firebase Hosting,以便在那里定义头文件的缓存控制?
这是我的firebase.json ⤵。
{
"functions": {
"predeploy": [
"npm --prefix "$RESOURCE_DIR" run lint",
"npm --prefix "$RESOURCE_DIR" run build"
]
}
}
我就这个问题联系了Firebase的支持人员,帮助我的人说 Firebase主机 需要使用,以便根据像上面描述的头来进行缓存。
我还没有测试过,所以一旦我测试过,我就会更新这个答案来确认它是否有效。
有一篇文章是由Firebase支持部门帮助我的人推荐给我的,内容是关于如何做到 缓存 内 a 云功能 但我不相信这是利用CDN的。
以上是关于如何在Firebase云函数中设置特定头文件的缓存?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 JBoss EAP 6.1 中设置 http 头文件
在 Cloud Function for Firebase 中设置 Firebase 消息的优先级
如何在 Flutter 中设置不同的 firebase 环境