我是firebase的新手,我想创建一个聚合函数来计算喜欢的次数。
我有三个根集合:订阅源、赞和用户。
源具有以下字段:
description: <description of feed>
likeCount:<Total count of like>
title: <feed title>
userId: <userId of feed>
喜欢有以下字段:
feedId: <id of the feed where a user gives like>
likeBy: <id of the user who likes the feed>
likeTo: <id of the user how created a feed>
用户具有以下字段:
username: <User name>
email: <User email>
当一个用户喜欢一个饲料然后新的条目添加到喜欢的集合。
当用户在提要上给出like时,我试图创建一个聚合函数到increase likeCount in feed collection
。
我正在检查解决方案。我已经找到了如下嵌套结构的解决方案
因此,我的问题是,是否可以使用我的数据结构(三个根集合:订阅源、喜欢和用户。)?如果是,那么我如何实现它?
或者我需要改变我的数据结构吗?
2条答案
按热度按时间68bkxrlz1#
我已经在我的系统中实现了类似的功能,我使用了Firebase Cloud Functions
你可以这样做:
每当get被添加到数据库的特定位置时,将'likesCounter'递增1:
^^您可以将这些代码放在firebase函数项目文件夹的index.js文件中。
你需要修改上面的代码来适应你的数据库的数据结构,如果你不熟悉的话,请按照steps来开始你的firebase项目的云函数。
正如Runaud所说,使用
admin.firestore.FieldValue.increment()
效率更高,成本更低。gj3fmq9x2#
我已经通过
onCreate()
方法达到了要求代码如下: