gpt4 book ai didi

firebase - Cloud Firestore - Cloud Functions :TypeError: collectionRef. 子项不是函数

转载 作者:行者123 更新时间:2023-12-01 11:16:29 25 4
gpt4 key购买 nike

Cloud Firestore - Cloud Functions:TypeError: collectionRef.child 不是函数

我正在使用 Cloud Functions 更新 Cloud Firestore 父集合中的评论编号,因此当添加评论时,Cloud Functions 可以自动更新评论编号。

Cloud Firestore - Cloud Functions:TypeError: collectionRef.child is not a function at exports.updateCommentNumbers1.functions.firestore.document.onCreate (/user_code/index.js:23:33) at Object. (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:112:27) at next (native) at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:82:36) at /var/tmp/worker/worker.js:716:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)

代码是:

exports.updateCommentNumbers1 = functions.firestore
.document('postlist/{postlistId}/comments/{commentsID}')
.onCreate((change, context) =>
{
const collectionRef = change.ref.parent;
const countRef = collectionRef.child('comment_number');

let increment;
if (change.after.exists() )
{
increment = 1;
}
else
{
return null;
}

return countRef.transaction((current) =>
{
return (current || 0) + increment;
}).then(() =>
{
return console.log('Comments numbers updated.');
});
});

问题是

  1. 如何通过子集合引用父集合?

  2. 如何获取父集合的字段值并更新它?

谢谢。

最佳答案

collectionRef 在您的代码中是一个 CollectionReference类型对象。正如您从 API 文档中看到的那样,该对象上没有 child() 方法。事实上,集合根本没有任何可分配的属性。您只能将信息存储在文档中,并且文档必须存在于某个集合中。

因此,您将不得不弄清楚要将此计数值存储在哪个文档(在哪个集合中),然后修改该文档中的某些字段。

此外,传递给您传递给 onCreate 的匿名函数的第一个参数不是“更改”对象。这是一个 DocumentSnapshot。 onUpdate 和 onWrite 接收“更改”对象,这是不同的东西。

关于firebase - Cloud Firestore - Cloud Functions :TypeError: collectionRef. 子项不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com