我正在尝试编写一个云函数来跟踪集合中的文档数量。关于这个可能没有大量的文档可能因为Firestore现在是这样的......所以我试图想出最好的方法来做到这一点......这是我提出的解决方案..我无法弄清楚如何返回计数
文件1 - >收藏 - >文件
在文档1中,理想情况下会存储集合中的文档计数,但我似乎无法弄清楚如何将其与此相关联
答案 0 :(得分:5)
我们假设Document1是 Blog帖子,子集合是 comments 。
注意:如果您的计数值变化快于每秒一次,则可能需要分布式计数器firestore aggregation example
exports.aggregateComments = functions.firestore
.document('posts/{postId}/comments/{commentId}')
.onCreate(event => {
const commentId = event.params.commentId;
const postId = event.params.postId;
// ref to the parent document
const docRef = admin.firestore().collection('posts').doc(postId)
return docRef.get().then(snap => {
// get the total comment count and add one
const commentCount = snap.data().commentCount + 1;
const data = { commentCount }
// run update
return docRef.update(data)
})
});
如果您需要在简单计数之外运行高级聚合计算,我会将详细{{3}}放在一起。