当文档添加到云存储中的指定集合时,如何更新文档



我的firestore中有两个集合(全局和本地(,当我将文档添加到本地时,我需要将全局文档中的字段更新1

下面是我的代码。我对此很陌生,所以我可能也有一些语法错误,如果你发现任何错误,请突出显示。

const functions = require("firebase-functions");
const admin = require("firebase-admin");
exports.helloWorld = functions.https.onRequest((request, response) => {
response.send("Hello world");
}); // For testing, even this is not being deployed
exports.updateGlobal = functions.firestore
.document("/local/{id}")
.onCreate((snapshot, context) => {
console.log(snapshot.data());
return admin
.firebase()
.doc("global/{id}")
.update({
total: admin.firestore.FieldValue.increment(1),
});
});

终端说";函数在加载用户代码时失败";在此之前,它显示了一些类似于";admin未定义";或";无法访问未定义"的firestore;我现在无法复制。

这是react应用程序的一部分,该应用程序具有通过firebase npm模块运行的正常firestore有关该问题所需的任何其他信息,我将相应地编辑问题,非常感谢您的帮助。

除了加载firebase-functionsfirebase-admin模块外,您还需要初始化一个admin应用程序实例,从中可以进行Cloud Firestore更改,如下所示:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
//...

我在CF中看到另一个问题。您需要使用context对象来获得id的值。

exports.updateGlobal = functions.firestore
.document("/local/{id}")
.onCreate((snapshot, context) => {

const docId = context.params.id;
return admin
.firebase()
.doc("global/" + docId)
.update({
total: admin.firestore.FieldValue.increment(1),
});
});

您也可以使用如下模板文字:

return admin
.firebase()
.doc(`global/${docId}`)
//...

相关内容

  • 没有找到相关文章

最新更新