我不知道什么是最好的方法来处理这个问题。我想限制用户保存超过10个文档。我有这样的集合
DataCollection > {item-documents}
项目文档结构
{ id: auto-generated uid: user-uid .... // other data }
选项1:在保存文档之前,我可以得到这个用户保存的总条目数,并且可以进行限制。但是我认为可以通过模拟API响应来欺骗它选项2:是否有任何方法可以限制规则中的写入操作?
pb3s4cty1#
在保存文档之前,我可以得到这个用户保存的总条目数,并且可以进行限制。但是我认为可以通过模拟API响应来欺骗它一种可能性是具有云函数,该云函数在每次创建(和删除?)文档时由用户更新计数器。此计数器由用户保存在一个文档中,您可以使用get()方法在安全规则中读取该文档。使用云函数的优点是,您可以拒绝对包含计数器文档的集合的任何访问,因为云函数使用绕过安全规则的Admin SDK。一个重要的(?)缺点是计数器更新不是即时的,即使您将云函数配置为始终有一个或多个示例可用。
get()
1条答案
按热度按时间pb3s4cty1#
在保存文档之前,我可以得到这个用户保存的总条目数,并且可以进行限制。但是我认为可以通过模拟API响应来欺骗它
一种可能性是具有云函数,该云函数在每次创建(和删除?)文档时由用户更新计数器。
此计数器由用户保存在一个文档中,您可以使用
get()
方法在安全规则中读取该文档。使用云函数的优点是,您可以拒绝对包含计数器文档的集合的任何访问,因为云函数使用绕过安全规则的Admin SDK。
一个重要的(?)缺点是计数器更新不是即时的,即使您将云函数配置为始终有一个或多个示例可用。