Firestore云功能 - 保留集合中文档数量的计数

时间:2017-12-06 21:23:39

标签: firebase google-cloud-firestore

我正在尝试编写一个云函数来跟踪集合中的文档数量。关于这个可能没有大量的文档可能因为Firestore现在是这样的......所以我试图想出最好的方法来做到这一点......这是我提出的解决方案..我无法弄清楚如何返回计数

文件1 - >收藏 - >文件

在文档1中,理想情况下会存储集合中的文档计数,但我似乎无法弄清楚如何将其与此相关联

1 个答案:

答案 0 :(得分:5)

我们假设Document1是 Blog帖子,子集合是 comments

  1. 触发评论文档创建功能。
  2. 阅读父文档并增加其现有计数
  3. 将数据写入父文档。
  4. 注意:如果您的计数值变化快于每秒一次,则可能需要分布式计数器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}}放在一起。