You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Cloud Functions调用先返回204再返回200,如何避免?

解决Firebase Callable函数返回204后再返回200的问题

这个问题我之前碰到过,根源在于你给Callable类型的云函数额外添加了不必要的cors中间件,导致了额外的预检请求。

问题原因

Firebase的functions.https.onCall(Callable函数)已经内置了跨域请求(CORS)的处理逻辑,不需要手动引入和使用cors中间件。当你手动添加cors后,浏览器会先发送一次OPTIONS预检请求(返回状态码204),随后才会发送实际的POST请求调用函数(返回200),这就是你看到两次响应的原因。

修改后的代码

直接移除所有和cors相关的代码即可:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

exports.addMessage = functions.https.onCall((data, context) => { 
  return { text: "Test" }; 
});

补充说明

如果是使用functions.https.onRequest创建的普通HTTPS函数,确实需要手动处理CORS,但onCall是专门为客户端SDK调用设计的函数类型,Firebase已经帮我们封装好了包括CORS、身份验证、请求解析在内的一系列逻辑,不需要额外配置。

内容的提问来源于stack exchange,提问作者Can

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:10:45