【发布时间】:2022-10-14 13:56:09
【问题描述】:
我在谷歌云功能中使用 NodeJs,我想增加一个文档中一个参数的值
我启动 Firestore:
const Firestore = require('@google-cloud/firestore');
const PROJECTID = 'XXXX';
const firestore = new Firestore({
projectId: PROJECTID,
timestampsInSnapshots: true
});
我的 .get() 和 .set() 函数可以正常工作。但是当我尝试更新一个增加它的值时,我收到 FieldValue.increment 错误
我试过了:
await snapshot.ref.update({ parameter: FieldValue.increment(1) });
添加:
const FieldValue = require('firebase-admin').firestore.FieldValue;
await snapshot.ref.update({ parameter: FieldValue.increment(1) });
如其他网站所述,并且:
documentRef.update(
'parameter', Firestore.FieldValue.increment(1)
)
如https://cloud.google.com/nodejs/docs/reference/firestore/latest/firestore/fieldvalue 中所述
const admin = require('firebase-admin');
increment = admin.firestore.FieldValue.increment(1);
await snapshotRef.update({ parameter: increment });
但没有一个工作。
错误:
TypeError:admin.firestore.FieldValue.increment 不是函数
或者
TypeError:FieldValue.increment 不是函数
"dependencies": {
"firebase-admin": "^6.5.1",
"nodemailer": "^6.6.1"
}
【问题讨论】:
-
最后一个应该是有效的。您是否尝试过重新启动模拟器?并尝试
const inc = require("firebase-admin").firestore.FieldValue.increment(1);。如果这不起作用,请从 package.json 分享您的 Firebase 管理员版本 -
你得到什么样的错误?请在错误日志和函数的完整上下文中提供更多上下文。
-
错误:TypeError:admin.firestore.FieldValue.increment 不是函数依赖项:{“name”:“sample-http”,“version”:“0.0.1”,“dependencies”:{“firebase-admin”:“ ^6.5.1", "nodemailer": "^6.6.1" } }
-
你是
firebase-admin版本旧。我在使用该版本时重现了您的错误。考虑使用以下命令将其升级到最新版本:npm i firebase-admin@latest。最新版本解决了这个问题。另外,补充一点,@google-cloud/firestore和firebase-admin是不同的。@google-cloud/firestore也有FieldValue。您将使用这两个中的哪一个?
标签: node.js google-cloud-firestore google-cloud-functions