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

Firebase函数预部署错误:函数命名规则冲突问题

Firebase函数命名冲突:代码变量与部署名称分离解决办法

你遇到的问题本质是代码变量命名规则和Firebase部署命名规则的冲突,解决关键是把两者分开:代码里用符合ESLint规范的驼峰变量名,同时通过Firebase函数的配置选项指定符合部署要求的小写连字符名称。

具体修改方案

修改你的函数代码,在onCustomEventPublished的配置中添加name字段,指定部署到Firebase的函数名称:

// The Firebase Admin SDK to access Firestore.
import * as admin from "firebase-admin";
admin.initializeApp();

// Import the onCustomEventPublished function from Eventarc
import {onCustomEventPublished} from "firebase-functions/v2/eventarc";

// 代码变量用驼峰,满足ESLint;部署名称通过name字段指定
export const mgHandleStripePaymentSuccess = onCustomEventPublished(
  {
    eventType: "com.stripe.v1.checkout.session.completed",
    name: "mg-handle-stripe-payment-success" // 这里设置Firebase部署显示的函数名
  },
  (event: any) => {
    console.log("Stripe payment success event data:", event.data);
    // Handle extension event here.
    return null;
  });

为什么这个方案有效

  • 代码层面:变量名mgHandleStripePaymentSuccess是标准驼峰格式,完全符合ESLint的camelcase规则,不会触发语法或规范报错。
  • 部署层面:通过name配置项指定的mg-handle-stripe-payment-success满足Firebase的要求(仅小写字母、数字、连字符,长度合规),部署时Firebase会使用这个名称作为函数的显示名,和你看到的Stripe扩展函数命名一致。

之前尝试失败的原因

  • 直接用连字符作为变量名:JavaScript标识符不允许包含连字符,所以触发语法解析错误。
  • 下划线命名:违反了ESLint强制的驼峰命名规范,导致报错。
  • 全小写无分隔符:虽然能通过检查,但可读性极差,完全没必要采用这种方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:37:25