如何在 Firebase 第二代 https 可调用函数的响应上设置缓存标头?

问题描述 投票:0回答:1

是否可以在第二代 https 可调用函数的响应上设置缓存标头?即,缓存控制标头告诉浏览器将其保留在缓存中一段时间。

这是我的 https 可调用的典型样板:

import { getErrorMessage } from "@repo/common";
import { logger } from "firebase-functions";
import { z } from "zod";
import { region } from "~/config.js";
import { onCall, HttpsError } from "firebase-functions/v2/https";

const schema = z.object({
  something: z.string(),
});

export const my_callable_function = onCall(
  {
    region,
  },
  async (event) => {
    try {
      const { something } = schema.parse(event.data);

      console.log(`Do something: ${something}`);
    } catch (err) {
      const message = getErrorMessage(err);
      logger.error(`Failed to get something: ${message}`);

      throw new HttpsError("internal", message, err);
    }
  }
);

这些函数仅在我们的 Firebase 应用程序内部使用。我看到还有 onRequest 可以用来代替 onCall,它提供了明确的请求和响应对象,但我想坚持使用 onCall,因为它确实处理了用户身份验证并且这些功能不可公开访问。

firebase google-cloud-platform google-cloud-functions
1个回答
0
投票

这是不可能的,并且自 v1 以来没有改变。 SDK 接管所有 HTTP 详细信息。可调用对象旨在用于远程过程调用,不应缓存。如果需要实现缓存,请使用普通的 HTTP 函数,并确保客户端和服务器都同意该方案。

参见:

© www.soinside.com 2019 - 2024. All rights reserved.