我想限制使用规则添加的记录的数据大小。对于某些收藏集,我可以使用:
request.resource.data.values().join('').size() < 300;
但是,如果文档包含时间戳记字段,则此操作将无效。因此,我必须检查每个单独字段的size(),这有点混乱。
在执行join('')之前,我找不到方法来过滤掉某些字段。是否有(更好的)方法来检查规则中完整文档的大小?
-编辑-
评论“您的意思”和“您在客户端上所做的事情”:
我想控制添加的数据量(主要是为了避免恶意滥用)。据我所知,Firestore没有为此设置某种油门设置。使用触发器功能和时间机制是一种选择。但就我而言,它不一定非常准确,因此我选择了一次可以增加一些最大文档大小的障碍。由于在一个时间范围内可能添加的文档数量受到限制,这在尝试充斥数据库方面至少会带来一些困难。因此,为此,我需要一个关于“创建”的条件规则,该条件规则仅允许尺寸小于x的文档。而且这不一定非常准确,我为其他一些周围的元内容留出了空间。
最简单的方法是使用.join('')。size()来确定文档的近似大小。但是,如果文档中某处有非字符串字段,则此字段将无效。现在,我必须明确地写出所有字段。这很麻烦,维护也不方便。
我找不到更简单或更好的方法,所以我的问题是确定规则条件下任意文档的大小“是否有我可能没有想到的更好的方法”。