Firebase Callable Functions被注册为HTTP函数问题求助
问题:Callable Functions被识别为HTTP函数的原因及解决办法
我使用Firebase v2的onCall编写了Callable Functions,但在Firebase控制台中它被注册为HTTP函数(图标和URL均显示为HTTP类型)。我已手动删除并通过CLI执行删除操作,重新部署后问题依然存在,请问是代码错误导致的吗?
我的代码片段:
const { onCall } = require("firebase-functions/v2/https"); const { getFirestore, Timestamp } = require("firebase-admin/firestore"); const { initializeApp } = require("firebase-admin/app"); initializeApp(); const db = getFirestore(); exports.registerUser = onCall({ region: "europe-west2" }, async (request) => { const { auth, data } = request; if (!auth || !auth.uid) { return { error: "UNAUTHENTICATED" }; }
排查及解决要点
- 更新Firebase CLI到最新版本:旧版本CLI对v2的
onCall触发器支持可能存在兼容问题,执行命令更新:npm install -g firebase-tools - 检查实际部署的函数类型:用CLI命令查看函数的真实触发器类型,结果比控制台显示更准确:
firebase functions:list - 确认代码完整性与无冲突:补全代码中缺失的闭合
}(当前代码片段存在语法截断);同时检查项目中是否有其他代码将registerUser重新导出为HTTP触发器,或存在同名HTTP函数。 - 排除控制台显示延迟:删除函数后等待5-10分钟再刷新控制台,控制台元数据同步可能存在延迟。
- 检查firebase.json配置:确认配置文件中未对
registerUser函数做特殊HTTP映射配置,避免触发器被强制覆盖。
内容的提问来源于stack exchange,提问作者Marco Jr
相关产品推荐
相关产品推荐

