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

Firebase Cloud Functions中Firestore FieldValue.increment TypeError求助

Firebase Cloud Functions 递增Firestore字段报错求助

在Firebase模拟器中测试Cloud Functions时,尝试递增Cloud Firestore中的字段遇到错误,以下是相关代码、错误日志及依赖版本:

函数代码

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";

admin.initializeApp();

const db = admin.firestore();

export const newUserIncrementStat = functions.firestore.document("users/{uid}").onCreate((snap, context) => {
  const docRef = db.doc("stats/users");

  try {
    return docRef.set({
      totalUsers: admin.firestore.FieldValue.increment(1),
    }, {merge: true});

  } catch (e) {
    console.log("Something is wrong: ", e);
    return Promise.reject(e);
  }
});

错误日志

TypeError: Cannot read properties of undefined (reading 'increment')

依赖版本

  • firebase-admin: "^11.0.0"
  • firebase-functions: "^3.22.0"
  • firebase: 11.3.0

问题原因及修复方案

报错核心是FieldValue的引用路径错误,当前firebase-admin版本中,FieldValue需通过已初始化的Firestore实例(即代码中的db)访问,而非直接从admin.firestore获取。

修改代码中的递增字段部分:
将

admin.firestore.FieldValue.increment(1)

替换为

db.FieldValue.increment(1)

修改后的完整函数代码:

import * as functions from "firebase-functions";
import * as admin from "firebase-admin";

admin.initializeApp();

const db = admin.firestore();

export const newUserIncrementStat = functions.firestore.document("users/{uid}").onCreate((snap, context) => {
  const docRef = db.doc("stats/users");

  try {
    return docRef.set({
      totalUsers: db.FieldValue.increment(1),
    }, {merge: true});

  } catch (e) {
    console.log("Something is wrong: ", e);
    return Promise.reject(e);
  }
});

若修改后仍有问题,可重新安装依赖确保版本兼容:

npm install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:45:44