我的用户可以在一个子集合中创建文档(比如任务),其中包含一堆检查身份验证、权限和数据有效性的安全规则。他们甚至可以选择多个任务并将它们复制到同一个集合中。现在,一个普通用户可能一次最多创建一百个任务,但是如果有恶意的人设法获取我的数据库凭据,进行身份验证并尝试以编程方式创建大量有效文档怎么办?这将导致 Firestore 扩展没有问题,并在我的 Firebase 计费中出现意外。这是我首先关心的问题,但我也在考虑出于其他原因限制集合大小的可能性,同时它也是所描述问题的解决方案。
我阅读了有关在 Firestore 文档中描述的集合中计数文档的技术,但我没有找到解决方案。在我的情况下,使用云函数中的事务更新文档字段上的计数器将是低效的。分布式计数器稍微增加了我的数据模型的复杂性,而且我不知道如何在每个任务创建的安全规则中正确读取这些计数器,即使这将是一个有效的解决方案。
有人有建议吗?