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

Firebase V1 Auth回调函数报错及部署区域配置问题求助

问题解决与说明

错误原因及修正方案

你遇到的TypeError: handler is not a function错误有两个核心原因:

1. 回调函数参数顺序错误

Firebase Functions V1中,onCreate和onDelete的参数顺序是先处理函数,后配置对象。你当前把区域配置放在了第一个参数位置,导致系统将配置对象误判为处理函数,触发错误。

2. 缺少Firestore相关对象的导入

代码中使用了getFirestore()和FieldValue,但未从firebase-admin中导入这两个对象,运行时会引发未定义错误。

修正后的完整代码

const functions = require("firebase-functions"); // v1
const {initializeApp} = require("firebase-admin/app");
const {getFirestore, FieldValue} = require("firebase-admin/firestore");
initializeApp();

const db = getFirestore();

// 调整参数顺序:处理函数在前,配置对象在后
exports.authUserCreated = functions.auth.user().onCreate((user) => {
  const userEmail = user.email;
  const userId = user.uid;
  // 用set({merge: true})替代update,避免文档不存在时操作失败
  return db.collection("users").doc(userId).set({
    createdAt: FieldValue.serverTimestamp(),
    email: userEmail
  }, {merge: true});
}, {region: "europe-west1"});

exports.authUserDeleted = functions.auth.user().onDelete((user) => {
  const userId = user.uid;
  return db.collection("users").doc(userId).delete();
}, {region: "europe-west1"});

关于区域部署的问题

Firebase Functions V1完全支持将函数部署到europe-west1区域,只要在配置对象中正确指定region参数即可,修正参数顺序后你的配置就能正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:32:18