如何解决Firestore计数文件数
如果我的Firestore文档具有以下结构:
在我的网络应用中,我想显示关注者的数量。如果我只是对整个get()
子集合进行followers
的操作。就读取操作而言,这将是昂贵的。我考虑了以下解决方案:
具有反文件,并且具有每次使用云功能在followers
集合内创建文件时都会增加的反字段。但是该计数器每个文档每秒只能写一次。拥有followers
集合和每个关注者的每个文档的想法是避免每秒写入一次的限制(感谢Doug Stevenson的博客:The top 10 things to know about Firestore when choosing a database for your app)。
我能想到的唯一解决方法是使用分布式计数器扩展。但是到目前为止,从我的阅读来看,该计数器仅适用于前端SDK。我是否可以在云函数或node.js后端中使用该扩展来增加关注者计数器?
解决方法
但据我所读,到目前为止,该计数器仅适用于前端SDK。
那不是事实。该扩展程序适用于对Firestore进行的任何查询。
我是否可以在云功能或node.js后端中使用该扩展来增加关注者计数器?
该扩展名通过监视添加到集合中或从集合中删除的文档来工作。更改的来源无关紧要。您仍然可以从任何能够查询柜台文件的代码中使用计算出的柜台。
,“每秒每文档一次写入”是一个准则,而不是硬性规定,因此,我强烈建议您不要立即挂断它。
再说一次,如果您认为您一贯需要的数量超出了保存在单个文档中的数量,则可以选择:
-
保留分布式计数器,如distributed counters上的文档所示。
-
将计数器放在其他位置。例如,我通常将计数器保存在实时数据库中,该数据库具有更高的写入吞吐量(但每个分片的读取并发性较低)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。