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

Firebase自定义函数中改写Axios POST请求调用第三方API

Firebase云函数实现第三方API POST请求

步骤1:安装依赖

在你的Firebase云函数目录下执行:

npm install axios

步骤2:配置环境变量(安全存储敏感信息)

把第三方API的URL、用户名、密码存到Firebase环境变量里,避免硬编码:

firebase functions:config:set api.url="你的第三方API地址" api.username="你的用户名" api.password="你的密码"

完整云函数代码

const functions = require("firebase-functions");
const axios = require("axios");

exports.submitThirdPartyRequest = functions.https.onRequest(async (req, res) => {
  // 从请求体获取前端传入的参数
  const { phone, email, maxMorgageBudget, mortPurpose, income } = req.body;

  // 从环境变量读取敏感配置
  const apiConfig = functions.config().api;
  const API_URL = apiConfig.url;
  const AUTH_USERNAME = apiConfig.username;
  const AUTH_PASSWORD = apiConfig.password;

  try {
    const response = await axios.post(
      API_URL,
      {
        order: {
          category_id: 7,
          status_id: 1,
          aff_source_id: 1,
        },
        person: {
          name: "n-a",
          surname: "n-a",
          phone: phone,
          email: email,
        },
        extend: {
          amount: maxMorgageBudget,
          repayment_time: 30,
          fixation: 5,
          house_value: maxMorgageBudget * 1.1,
          mortgage_purpose_id: mortPurpose,
          income: income,
        },
        organization: 2,
      },
      {
        headers: { "Content-Type": "application/json" },
        auth: {
          username: AUTH_USERNAME,
          password: AUTH_PASSWORD,
        },
      }
    );

    // 返回第三方API的响应给前端
    res.status(200).json(response.data);
  } catch (error) {
    functions.logger.error("请求第三方API失败", error);
    // 处理不同类型的错误并返回给前端
    if (error.response) {
      res.status(error.response.status).json(error.response.data);
    } else {
      res.status(500).json({ error: "请求第三方API时发生未知错误" });
    }
  }
});

关键说明

  • 用functions.https.onRequest创建HTTP触发的云函数,前端可通过云函数的URL发起请求,将phone、email等参数放在请求体中
  • 敏感信息(API地址、账号密码)通过Firebase环境变量管理,避免代码泄露风险
  • 使用async/await替代Promise链式调用,提升代码可读性
  • 完善错误处理,将第三方API的错误信息或内部错误返回给前端,同时用functions.logger记录错误日志便于排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:40:10