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

Firebase Cloud Functions中functions.auth.user()为何未定义?

Firebase Cloud Functions部署报错:functions.auth.user()中auth未定义问题

使用Firebase Cloud Functions部署时遇到functions.auth.user()中auth未定义的错误,导致部署失败。已尝试卸载重装npm、Node.js、Firebase CLI,切换函数版本(偏好v1),重新初始化项目,问题仍未解决,需要成功部署函数。


相关代码与环境信息

index.js

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

admin.initializeApp();

// 现有helloWorld函数
exports.helloWorld = functions.https.onRequest((request, response) => {
  functions.logger.info("Hello logs!", {structuredData: true});
  response.send("Hello from Firebase! ::: FUNCTIONS - " + JSON.stringify(functions));
});

// 记录新创建用户UID的新函数
exports.logNewUser = functions.auth.user().onCreate((user) => {
  functions.logger.info(`New user created with UID: ${user.uid}`, {structuredData: true});
});

package.json

{"name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "18"
  },
  "main": "index.js",
  "dependencies": {
    "firebase-admin": "^12.5.0",
    "firebase-functions": "^6.0.1"
   
  },
  "devDependencies": {
    "firebase-functions-test": "^3.1.0"
  },
  "private": true
}

系统设置

node --version
v20.17.0

npm --version
10.8.2

firebase --version
13.18.0

错误信息

TypeError: Cannot read properties of undefined (reading 'user')
Error: Functions codebase could not be analyzed successfully. It may have a syntax or runtime error

Functions信息

FUNCTIONS - {"alerts":{"appDistribution":{"newTesterIosDeviceAlert":"appDistribution.newTesterIosDevice","inAppFeedbackAlert":"appDistribution.inAppFeedback"},"billing":{"planUpdateAlert":"billing.planUpdate","planAutomatedUpdateAlert":"billing.planAutomatedUpdate"},"crashlytics":{"newFatalIssueAlert":"crashlytics.newFatalIssue","newNonfatalIssueAlert":"crashlytics.newNonfatalIssue","regressionAlert":"crashlytics.regression","stabilityDigestAlert":"crashlytics.stabilityDigest","velocityAlert":"crashlytics.velocity","newAnrIssueAlert":"crashlytics.newAnrIssue"},"performance":{"thresholdAlert":"performance.threshold"},"eventType":"google.firebase.firebasealerts.alerts.v1.published"},"database":{"writtenEventType":"google.firebase.database.ref.v1.written","createdEventType":"google.firebase.database.ref.v1.created","updatedEventType":"google.firebase.database.ref.v1.updated","deletedEventType":"google.firebase.database.ref.v1.deleted"},"storage":{"archivedEvent":"google.cloud.storage.object.v1.archived","finalizedEvent":"google.cloud.storage.object.v1.finalized","deletedEvent":"google.cloud.storage.object.v1.deleted","metadataUpdatedEvent":"google.cloud.storage.object.v1.metadataUpdated"},"https":{},"identity":{},"pubsub":{},"logger":{},"tasks":{},"eventarc":{},"scheduler":{},"remoteConfig":{"eventType":"google.firebase.remoteconfig.remoteConfig.v1.updated"},"testLab":{"eventType":"google.firebase.testlab.testMatrix.v1.completed"},"firestore":{"writtenEventType":"google.cloud.firestore.document.v1.written","createdEventType":"google.cloud.firestore.document.v1.created","updatedEventType":"google.cloud.firestore.document.v1.updated","deletedEventType":"google.cloud.firestore.document.v1.deleted","writtenEventWithAuthContextType":"google.cloud.firestore.document.v1.written.withAuthContext","createdEventWithAuthContextType":"google.cloud.firestore.document.v1.created.withAuthContext","updatedEventWithAuthContextType":"google.cloud.firestore.document.v1.updated.withAuthContext","deletedEventWithAuthContextType":"google.cloud.firestore.document.v1.deleted.withAuthContext"},"params":{"BUCKET_PICKER":{"resource":{"type":"storage.googleapis.com/Bucket"}},"declaredParams":[],"databaseURL":"params.DATABASE_URL","projectID":"params.PROJECT_ID","gcloudProject":"params.GCLOUD_PROJECT","storageBucket":"params.STORAGE_BUCKET"},"app":{}}


解决方案

  1. 确认Firebase项目已启用Auth服务
    登录Firebase控制台,检查当前项目是否开启了Firebase Authentication服务,未启用则先开启后再部署。

  2. 适配Firebase Functions v6版本的导入方式
    v6版本中部分触发器需显式解构导入,修改代码如下:

    const functions = require('firebase-functions');
    const { auth } = require('firebase-functions');
    const admin = require('firebase-admin');
    
    admin.initializeApp();
    
    exports.helloWorld = functions.https.onRequest((request, response) => {
      functions.logger.info("Hello logs!", {structuredData: true});
      response.send("Hello from Firebase! ::: FUNCTIONS - " + JSON.stringify(functions));
    });
    
    exports.logNewUser = auth.user().onCreate((user) => {
      functions.logger.info(`New user created with UID: ${user.uid}`, {structuredData: true});
    });
    
  3. 统一Node.js版本与package.json配置
    当前package.json指定node版本为18,但本地使用20,可选择:

    • 将package.json中engines.node改为"20",
    • 或降级Node.js到18.x版本,避免版本不兼容问题。
  4. 重新安装依赖
    删除本地依赖文件后重新安装:

    rm -rf node_modules package-lock.json
    npm install
    
  5. 降级到兼容的Functions版本
    若偏好v1版本,需安装对应版本并匹配Node.js版本(v1仅支持Node.js 8-10):

    npm uninstall firebase-functions
    npm install firebase-functions@1.1.0
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:35:56